WEB开发网
开发学院软件开发C语言 C#正则表达式高级技巧及实例详解 阅读

C#正则表达式高级技巧及实例详解

 2009-06-10 08:32:04 来源:WEB开发网   
核心提示: /(?P<quote>"|').*?(?P=quote)/上式中,quote就是组名,C#正则表达式高级技巧及实例详解(4),"|'是改组匹配内容的正则,后面的(?P=quote)是在调用组名为quote的有名组,不就可以匹配这个独立的单词了

/(?P<quote>"|').*?(?P=quote)/

上式中,quote就是组名,"|'是改组匹配内容的正则。后面的(?P=quote)是在调用组名为quote的有名组。这个式子的效果和上面的回调引用实例一样,只不过是用了有名组来实现。是不是更加易读易懂了?

有名组也能用于处理已匹配内容之数组的内部数据。赋予特定正则的组名也能作为所匹配到的内容在数组内部的索引词。

preg_match( '/(?P<quote>"|\')/', "'String'", $matches );

# 下面的语句输出“'”(不包括双引号)

echo $matches[1];

# 使用组名调用,也会输出“'”

echo $matches['quote'];

所以,有名组并不只是让写代码更容易,它也能用于组织代码。

4. 字词边界(Word Boundaries)

字词边界是字串里的字词字符(包括字母、数字和下划线,自然也包括汉字)和非字词字符之间的位置。

其特殊之处就在于,它并不匹配某个实在的字符。它的长度是零。 \b 匹配所有字词边界。

不幸的是,字词边界一般都被忽视掉了,大部分人都没有在意他的现实意义。 例如,如果你想要匹配单词“import”:

/import/

注意了!正则表达式有时候很调皮的。下面的字串也能和上面的式子匹配成功:

important

你或许觉得,只要在import前后加上空格,不就可以匹配这个独立的单词了:

/ import /

那如果遇上这种情况呢:

The trader voted for the import

当 import 这个词在字串开头或者结尾时,修改后的表达式仍然不能用。因此,考虑各种情况是必须的:

上一页  1 2 3 4 5 6 7  下一页

Tags:正则 表达式 高级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接