位置匹配

1、单词边界

the cat scattered his food all over the room

正则表达式  cat 
匹配结果
cat
cat

用\b 指定单词边界,\b用来匹配一个单词的开始或结尾

the cat scattered his food all over the room

正则表达式   \bcat\b

匹配结果 
cat

 注意:\b 匹配的是一个这样的位置,这个位置位于一个能够用来构成单词的字符(字母、数字和下划线,也就是与\w相匹配的字符)和一个不能用来构成单词的字符(也就是与\W相匹配的字符)之间。\b只匹配一个位置,不匹配任何字符。\bcap\b匹配到的字符串的长度是3个字符(c、a、t)不是5个字符。

The captain wore his cap and cape proudly as he sat listening to the recap of how his crew saved the men from a capsized vessel.

正则表达式   \bcap\b
匹配结果只有1个
cap
\bcap\b只匹配cap单词本身

正则表达式  \bcap
匹配结果有4个
cap
cap
cap
cap

\bcap匹配以字符序列cap开头任何一个单词

正则表达式  cap\b
匹配结果有2个
cap
cap
cap\b匹配以字符序列cap结束的任何一个单词
 

 

2、不匹配一个单词边界

\B 不匹配一个单词边界

Please enter the nine-digit id as it appears on your color - coded pass-key.
正则表达式  \B-\B
匹配结果  只有一个  -
\B-\B匹配一个前后都不是单词边界的连字符。nine-digit、pass-key中的连字符都是前后有单词边界,所以不能与之匹配。但color - coded中的连字符可与之匹配。

 

3、字符串边界

单词边界可以用来进行与单词有关的位置匹配(单词的开头、单词的结束、整个单词等)。

字符串边界有着类似的用途,只不过是用来进行与字符串有关的位置匹配而已(字符串的开头、字符串的结束、整个字符串等)

用来定义字符串边界的元字符有两个:一个定义字符串开头的^  ,另一个是定义字符串结尾的$。

^是有多种用处的元字符,只有当它出现在一个字符集合里([^0-9]表示非数字),发挥一个“求非”的作用

如果不在字符集合里则匹配字符串的开头。

<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions targetNamespace="http://tips.cf"
xmlms:impl="http://tips.cf" xmlns:intf="http://tips.cf" />
<?xml version="1.0" encoding="UTF-8" ?>

正则表达式  ^\s*<\?xml.*?\?>

匹配结果
<?xml version="1.0" encoding="UTF-8" ?>
匹配的是xml文档,xml文档是以<?xml version="1.0" encoding="UTF-8" ?>为开头的
^\s*<\?xml.*?\?>中的^是匹配字符串开头位置,\s*允许有零个或多个空白字符,.*是匹配零个或多个任意字符,.*?是.*懒惰型的元字符,解决.*贪婪型的行为。\?是匹配?本身。

web页面里,是以标签</html>结尾的。

<html>
<body>
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
</body>
</html>
正则表达式  </[Hh][tT][mM][lL]>\s*$

匹配结果  </html>

 

posted @ 2017-08-07 06:51  永不止步!  阅读(400)  评论(0编辑  收藏  举报