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

正则表达式表示和

墨初 知识笔记 132阅读

正则表达式的功能是什么?

答:要解决真正的问题,就必须有解决问题的思路,正则表达式的功能,说到底,可以归纳为三种逻辑,为了表述方便,我们分别称为与、或、非。 逻辑关系 说明 与 在某个位置,某些元素(字符、字符组或者子表达式)必须出现

字符组和正则表达式有什么区别?

答:如果“或”表示出现的是某个元素的一个,那么可以使用字符组。 比如以下正则表达式表示此处出现的字符是a、b、c中的任何一个: 如果要匹配多个字符,则使用分支结构(……|……)。 比如匹配单词foot及其复数形式,就可以用正则表达式:

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

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

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

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

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