4
|
polygenelubricants · 技术社区 · 14 年前 |
1
5
在进行真正的匹配之前,可以使用lookahead来“锁定”组号。
|
2
3
在preg(Perl Regex库)中,这将匹配您的示例,并且
它取决于条件运算符
更新 另外,对于你的阑尾(即使它是错误的方言):
这个名字又出现了
|
3
3
我能想到的唯一解决办法是,用不同的交替方式捕捉空字符串的技术;稍后对这些组的反向引用可以用作伪条件。 因此,此模式适用于第二个示例( as seen on rubular.com
所以本质上,对于每个开始的括号,我们分配一个组来捕获一个空字符串。然后,当我们尝试匹配右括号时,我们会看到哪个组成功,并匹配相应的右括号。 “main”部分不必重复,但在Java中,backreference可能需要重新编号。这在支持命名组的风格中不会是问题。 |
4
0
|
5
0
当你遇到这样的情况时,使用一个regex是一个愚蠢的限制,我根本不同意你使用多个regex的“维护噩梦”——重复几次类似但不同的表达式很可能是错误的 更多 与一个过于复杂的正则表达式相比,它是可维护的(好吧,不那么不可维护),甚至可能有更好的性能。
下面是一些伪代码:
|
6
0
您可以有一个函数,可能如下所示(我在这里使用C#语法,因为我在这里比在Java中更熟悉regex,但将其改编为Java应该不会太困难)。 请注意,我或多或少没有实现AdaptBackreferences()函数 作为对读者的练习 . 它应该调整反向引用编号。
|
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
Katia · 根据特定规则进行多行匹配 2 年前 |
MHA · Pandas str.extract()以字母结尾的数字 2 年前 |
Slava Vir · 如何查找后面“/”之间的最后一组 2 年前 |