![]() |
1
765
最重要的部分是概念。一旦你了解了构建块是如何工作的,语法上的差异只不过是温和的方言而已。正则表达式引擎语法之上的一层是您正在使用的编程语言的语法。像Perl这样的语言消除了大部分这种复杂性,但是如果在C程序中使用正则表达式,则必须记住其他注意事项。 如果您认为正则表达式是可以随意混合和匹配的构建块,它将帮助您学习如何编写和调试自己的模式,以及如何理解其他人编写的模式。 简单地开始
从概念上讲,最简单的正则表达式是文字字符。模式
相邻的正则表达式匹配序列。例如,模式
如果你曾经用过
菜单上的顺序
只需增加一点复杂性,你就可以将“尼克”或“尼克”与模式匹配起来。
模式
把字符类看作菜单:只选择一个。 有用的快捷方式
使用
大写的变体是它们的补语,所以
一次是不够的
从那里,你可以重复你的部分模式
量词
. 例如,模式
把这些积木拼凑起来
第一场比赛证明了一个重要的教训:
其他一些有用的例子:
分组
量词将模式修改到其最左边。你可能会想到
若要将一个或多个“abc”序列的末尾与零匹配,请使用
交替
早些时候,我们看到了一种匹配“Nick”或“Nick”的方法。另一种是交替
在另一个例子中,您可以等价地编写
逃逸
虽然有些字本身是匹配的,但有些字有特殊的含义。模式
贪婪正则表达式量词是贪婪的。这意味着它们尽可能多地匹配文本,同时允许整个模式成功匹配。 例如,假设输入是
你可能会想到
要从贪婪转变为你可能认为的谨慎,添加一个额外的
如果您的输入是'(123)(456)',则第一个捕获将是'123'。非贪婪量词希望允许模式的其余部分尽快开始匹配。
(至于你的困惑,我不知道有什么正规的方言
锚
使用特殊图案
假设要匹配表单的注释
你会写
建立自己的正则表达式是递归的,因此既然您了解了这些基本规则,就可以随意组合它们。 编写和调试正则表达式的工具:
书
免费资源
脚注
:
上面的陈述
|
|
ramza77 · Regex将最后一个字母大写[副本] 6 年前 |
![]() |
RogerHN · 正则表达式匹配数字范围加分号和其后的数字 6 年前 |
![]() |
MD Rony · 如何查找和替换不同行上的固定3个字符(记事本++) 6 年前 |
![]() |
Maciej Czapiewski · 替换行中的第二个相同字符 6 年前 |
![]() |
Ricardo · 在记事本中多次使用当前文本添加前/后文本++ 6 年前 |
![]() |
Albobz · 用于匿名化名称的正则表达式 6 年前 |
![]() |
Jimenemex · 明确说出折叠记事本的条件++ 6 年前 |