下面有正则表达式模式之间有什么区别?
pattern1 = "^ab|cd$"
pattern2 = "^(ab|cd)$"
pattern3 = "^(ab)|(cd)$"
Run Code Online (Sandbox Code Playgroud)
我尝试编写一个正则表达式来匹配罗马数字格式(0~3999).我写了一个模式如下:
pattern = "^M{1,3}|(CM|C?D|D?C{1,3})|(X?L|XC|L?X{1,3})|(I?V|IX|V?I{1,3})$"
而这种模式匹配"DIIII"或XIIII或类似这种模式的东西,但我期望大多数三个匹配.
为什么会这样?
r"^ab|cd$"
Run Code Online (Sandbox Code Playgroud)
ab在开始或cd结束时匹配.请注意,这与ab在行的中间或末尾出现的不匹配.同样,这cd与开头或中间的不匹配.
r"^(ab|cd)$"
Run Code Online (Sandbox Code Playgroud)
匹配仅包含ab或的整行cd.进一步的字符串cd或ab由一个组捕获.
r"^(ab)|(cd)$"
Run Code Online (Sandbox Code Playgroud)
与第一个相同,但它捕获ab或cd分成两个单独的组.
| 归档时间: |
|
| 查看次数: |
578 次 |
| 最近记录: |