![]() |
1
9
当教程介绍查找时,他们倾向于为每个用例选择最简单的用例。所以他们会用这样的例子
试着看一些更现实的例子。一个经常出现的问题涉及验证密码;例如,确保新密码至少有六个字符长,并且包含至少一个字母和一个数字。一种方法是:
角色类
对于另一个例子,假设您需要查找单词“there”的所有出现位置,除非它前面有引号。最明显的例子是
每一个regex引擎都有其自身的优点和缺点,但有一点是对所有引擎都是正确的,那就是它们比任何其他引擎都更快地找到文字字符的固定序列——序列越长越好。这意味着它可以大大更快地进行向后看。 最后的 ,即使它意味着将单词匹配两次:
因此,控制了望台位置的规则是没有规则;你把它们放在任何它们在每种情况下最有意义的地方。 |
![]() |
2
4
我认为,以身作则比解释更容易。让我们来看看这个regex:
这意味着:
所有这些都将匹配字符串
还要注意,在大多数(可能全部)实现中,lookbehind具有固定长度的限制。不能使用重复/可选性运算符,例如
在字符串上运行此regex的示例
|
![]() |
3
1
当我们在表情后面看的时候,我们
重新检查我们已经匹配的字符串
. 当你有复杂的情况时,这是很常见的(你可以把它看作
首先,捕获两个字符之间的和号。接下来,你检查它们都不是空格(
|
![]() |
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
![]() |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
Katia · 根据特定规则进行多行匹配 2 年前 |
![]() |
MHA · Pandas str.extract()以字母结尾的数字 2 年前 |
![]() |
Slava Vir · 如何查找后面“/”之间的最后一组 2 年前 |