正则表达式入门边界

Posted hahazexia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式入门边界相关的知识,希望对你有一定的参考价值。

零宽度断言不匹配字符,而是匹配字符串中的位置。比如^和$,也叫做锚位符。
行的起始与结束
要匹配行或字符串的起始要用脱字符

^

要匹配行或字符串的结尾要用美元符

$
^How.*Country\.$

这个匹配以How开头的整行。最后的\.是转义字符,匹配点号.。如果想要匹配作为字面值的点号,必须将点号转义或者将其放入字符组中。
如果不勾选multiline但是勾选dotall的情况下,输入

^THE.*\?$

它匹配了整个文本。
dotall选项表示点号除了匹配其他字符外,还会匹配换行符。如果取消doall,则它什么都不匹配。

^THE.*

在取消dotall的情况下只匹配了第一行。
单词边界与非单词边界

\bTHE\b

\b是个零宽度的断言,因为它匹配的东西其实是没有宽度不存在的东西,它匹配了单词THE

\Be\B

它匹配了字母e,e的两边都是非单词字符
指定单词的边界的另一种方法:

\<

指定单词开头

\>

指定单词结尾
这是旧语法,在最新的正则程序中无法使用。但有些情况很有用。因为它不想\b匹配任意单词边界,允许分别匹配。
其他锚位符
\A匹配字符串开头,\Z匹配字符串结尾,但这个写法不是在所有正则程序中可用。
使用元字符的字面值
可以使用\Q和\E之间的字符集匹配字符串字面值。
为了展示,在RegExr下方文本框中输入以下元字符:

.^$*+?|(){}[]\-

这15个元字符有特殊含义,用来编写匹配模式。
如果在RegExr上方文本框中写入这些字符,不会有效果,因为RegExr会以为这是正则表达式而不是字符串字面值。

\Q$\E

它将匹配$,因为\Q和\E之间的任意字符都会被解释为普通字符。而可以在元字符之前加一个\使其匹配字面值。
小结:

1.开始和结束分别是^,$

2.单词和非单词把边界是\b,\B

3.\Q和\E之间的任意字符都会被解释为普通字面字符

以上是关于正则表达式入门边界的主要内容,如果未能解决你的问题,请参考以下文章

[原]正则表达式模式匹配入门

JavaScript正则表达式入门

俗话:学好正则表达式,走遍天下都没事!最详细的正则入门教程!

JS正则表达式从入门到入土—— 元字符和字符类

utf-8中的php正则表达式单词边界匹配

通过 Java 正则表达式提取 semver 版本字符串的片段