Math、Group 和 Capture
.NET 平台中的正则表达式包含在 System.Text.RegularExpressions 命名空间中。该命名空间中的类主要有:
- Regex
- MatchCollection
- Match
- GroupCollection
- Group
- CaptureCollection
- Capture
其中,Regex 类是核心。 (更多…)
.NET 平台中的正则表达式包含在 System.Text.RegularExpressions 命名空间中。该命名空间中的类主要有:
其中,Regex 类是核心。 (更多…)
《Mastering Regular Expressions,3rd》(以下简称《MRE3》)这本书的中译版也要上市了,中文名叫《精通正则表达式》,由电子工业出版社的博文视点推出。而《Beginning Regular Expressions》(以下简称《BRE》)可能还要等四个月以上才能面世。
本文的目的是就这两本“国内首册”正则表达式技术书的引进版作一比较。 (更多…)
“模式:事物的标准样式”。这是汉语词典中的解释,但在英语环境下--特别是在计算机编程领域中,“模式”一般也指“事物的标准样式”,比如“设计模式(design pattern)”,就是指“设计的标准样式”。但在正则表达式语境下,“模式”除对应 pattern 之外还对应着 mode 和 schema: (更多…)
有很多常见的字符类(或取反的字符类)存在等价的元字符。比如:
\w [A-Za-z0-9_]
\W [^A-Za-z0-9_]
\d [0-9]
\D [^0-9]
\s [fnrtv])
\S [^fnrtv])
另外,在使用字符类时应该注意以下问题: (更多…)
字符类,顾名思义就是某一类字符或者将某些字符分成一类。正则表达式中的字符类用一对方括号([])来表示,比如 [abcd] 或 [0123456789]。事实上,字符类所暗含的意思就是选择性,即“多选一”――不管方括号中包含多少个字符,一对方括号一次只能匹配一个字符。 (更多…)
在正则表达式中,可以用一对(英文)圆括号创建一个分组。比如模式
([A-Z]+)(\d+)
与
[A-Z]+\d+
返回的匹配结果相同,但前者使用了两对圆括号分组还捕获了额外的两个子字符串。举例来说,如果用上面两个模式来测试字符串 ABC123,那么第二个模式会返回 ABC123(因为匹配成功),而第一个模式除了返回 ABC123 这个匹配项之外,还会捕获两个组,第一个组中包含 ABC,而第二个组中包含 123。这两个分组都是捕获组――即捕获匹配项中子字符串的组。 (更多…)