上节我们介绍了Flex正则表达式的规则,这里和大家分享一下Flex正则表达式中一些代表抽象意义的特殊符号的用法,相信本文介绍一定会让你有所收获。
Flex正则表达式中一些代表抽象意义的特殊符号
◆一些符号在Flex正则表达式中代表抽象的特殊意义:
表达式作用
^
与字符串开始的地方匹配,不匹配任何字符
$
与字符串结束的地方匹配,不匹配任何字符
\b
匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符
◆进一步的文字说明仍然比较抽象,因此,举例帮助大家理解Flex正则表达式中特殊符号的意义。
举例1:表达式"^aaa"在匹配"xxxaaaxxx"时,匹配结果是:失败。因为"^"要求与字符串开始的地方匹配,因此,只有当"aaa"位于字符串的开头的时候,"^aaa"才能匹配,比如:"aaaxxxxxx"。
举例2:表达式"aaa$"在匹配"xxxaaaxxx"时,匹配结果是:失败。因为"$"要求与字符串结束的地方匹配,因此,只有当"aaa"位于字符串的结尾的时候,"aaa$"才能匹配,比如:"xxxxxxaaa"。
举例3:表达式".\b."在匹配"@@@abc"时,匹配结果是:成功;匹配到的内容是:"@a";匹配到的位置是:开始于2,结束于4。
进一步说明:"\b"与"^"和"$"类似,本身不匹配任何字符,但是它要求它在匹配结果中所处位置的左右两边,其中一边是"\w"范围,另一边是非"\w"的范围。
举例4:表达式"\bend\b"在匹配"weekend,endfor,end"时,匹配结果是:成功;匹配到的内容是:"end";匹配到的位置是:开始于15,结束于18。
◆一些符号可以影响Flex正则表达式内部的子表达式之间的关系:
表达式作用
|左右两边表达式之间"或"关系,匹配左边或者右边()
(1).在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
(2).取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
举例5:表达式"Tom|Jack"在匹配字符串"I'mTom,heisJack"时,匹配结果是:成功;匹配到的内容是:"Tom";匹配到的位置是:开始于4,结束于7。匹配下一个时,匹配结果是:成功;匹配到的内容是:"Jack";匹配到的位置时:开始于15,结束于19。
举例6:表达式"(go\s*)+"在匹配"Let'sgogogo!"时,匹配结果是:成功;匹配到内容是:"gogogo";匹配到的位置是:开始于6,结束于14。
举例7:表达式"¥(\d+\.?\d*)"在匹配"$10.9,¥20.5"时,匹配的结果是:成功;匹配到的内容是:"¥20.5";匹配到的位置是:开始于6,结束于10。单独获取括号范围匹配到的内容是:"20.5"。
【编辑推荐】