有段时间没用Regex,很多规则记的不是很清楚了。复习一下。

 

Regex一般能解决比如文本匹配,字符串替换,和字符串查找方面的问题。

对于查找,要理解Match Collection和Match Group的含义。

collection对应于有多少个匹配,group对应于每个匹配中设置的group

默认group[0]为一个匹配的完整string,group通过()来定义,如果没有显示为每个group命名,通过index来访问

可以通过(?<groupname>\s+)来定义每个group的名字

 

()用于定义group

{}用于定义匹配次数

[]用于定义多种字符的匹配(还是没解释清楚) 

 

抄一点reference:

 在表达式 "\s","\d","\w","\b" 表示特殊意义的同时,对应的大写字母表示相反的意义

表达式

可匹配

\S

匹配所有非空白字符("\s" 可匹配各个空白字符)

\D

匹配所有的非数字字符

\W

匹配所有的字母、数字、下划线以外的字符

\B

匹配非单词边界,即左右两边都是 "\w" 范围或者左右两边都不是 "\w" 范围时的字符缝隙

在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总

字符

说明

^

匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "\^"

$

匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "\$"

( )

标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)"

[ ]

用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "\[" 和 "\]"

{ }

修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}"

.

匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 "\."

?

修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "\?"

+

修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "\+"

*

修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "\*"

|

左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|"

 

 常用的处理选项

名称说明IgnoreCase(忽略大小写)匹配时不区分大小写。Multiline(多行模式)更改^$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)Singleline(单行模式)更改.的含义,使它与每一个字符匹配(包括换行符\n)。IgnorePatternWhitespace(忽略空白)忽略表达式中的非转义空白并启用由#标记的注释。ExplicitCapture(显式捕获)仅捕获已被显式命名的组。

 

posted on 2010-01-07 22:24  shawnliu  阅读(198)  评论(0编辑  收藏  举报