欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

正则表达式 表示非

墨初 知识笔记 144阅读

什么是正则表达式?

答:正则表达式 定义 所谓 正则表达式 ,实际上就是用来描述 某些字符串匹配 规则的工具。 由于 正则表达式 语法简练,功能强大,得到了许多程序设计语言的支持,包括Java、C++、Perl以及Shell等。

正则表达式中的“非”是什么意思?

答:“非”是正则表达式中最难处理的逻辑关系。 因为没有直接对应的结构,“非”的处理比较吃力。 最简单的“非”,意思是此处不能出现某个字符,这一点通常很直观,似乎用排除型字符组『 …]』就可以解决。 比如双引号字符串的匹配,首尾两个双引号很容易匹配,其中的内容肯定不是双引号(暂时不考虑转义的情况),所以可以用『 [^"]』表示即可,其长度不确定,所以用*来限定,所以整个表达式就是『" [^"]*"』,非常简单。 但是,事情果真都如此简单吗? 我们仍然举cat和cut的例子,如果仍然希望匹配c开头、t结尾的单词,但不希望匹配cut,可以写成『c [^u]t』,是否就可以了? 这个表达式的意思是:最开头的字母是c,之后是一个不为u的字符,之后是t。 没错,它确实不会匹配cut,也可以匹配cat。

正则表达式能应对各种不同的文本,“或”功能不可或缺吗?

答:正则表达式能应对各种不同的文本,“或”功能不可或缺。 如果“或”的意思是,元素可以出现,也可以不出现,或者出现的次数不确定,可以用量词来表示“或”关系。 比如表达式『a?』,表示在此处,字符a可以出现,也可以不出现;表达式『(ab)+』,表示在此处,字符串ab必然要出现1次,也可以出现无限多次。

正则表达式中的“与”关系是什么?

答: 一般来说,如果正则表达式中的元素没有任何量词(quantifier,比如*、?、+)修饰,就是“与”关系。 比如『<』,就表示“这里必须出现<字符”;『cat』,就表示“这里必须依次出现c、a、t,3个字符”。 不过“与”的情况并没有这么简单,有时候,“必须出现”的是若干个元素,或者说,几个元素必须同时出现,但它们之间并不相连,这是非常容易犯错的时候,不过现在我们不举具体的例子,稍晚一点再说。 或

声明:无特别说明,转载请标明本文来源!