有段时间没用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 | |
\D | |
\W | |
\B |
在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总
字符 | 说明 |
^ | 匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "\^" |
$ | 匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "\$" |
( ) | 标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "\(" 和 "\)" |
[ ] | 用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "\[" 和 "\]" |
{ } | 修饰匹配次数的符号。要匹配大括号,请使用 "\{" 和 "\}" |
. | 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 "\." |
? | 修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "\?" |
+ | 修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "\+" |
* | 修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "\*" |
| | 左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "\|" |
常用的处理选项
名称说明IgnoreCase(忽略大小写)匹配时不区分大小写。Multiline(多行模式)更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)Singleline(单行模式)更改.的含义,使它与每一个字符匹配(包括换行符\n)。IgnorePatternWhitespace(忽略空白)忽略表达式中的非转义空白并启用由#标记的注释。ExplicitCapture(显式捕获)仅捕获已被显式命名的组。