【发布时间】:2014-12-03 15:18:30
【问题描述】:
我正在尝试使用正则表达式从字符串中捕获重复的模式。更准确地说,我正在尝试解析 LDAP 模式定义。
示例字符串:
( 1.3.6.1.4.1.1466.115.121.1.8 DESC 'Certificate' X-BINARY-TRANSFER-REQUIRED 'TRUE' X-NOT-HUMAN-READABLE 'TRUE' )
匹配字符串和所有相关组件的正则表达式(Python/扩展正则表达式)是:
^\( (?P<oid>\d+(\.\d+)*) ((?P<keyword>[A-Z-]+) (?P<value>[^' ]+|'[^']+'|\(.+\)) )+\)$
我已经命名了相关的匹配组。问题是我如何捕捉所有出现的 P 和 P?默认情况下,仅捕获最后一次出现,而仅匹配其他出现。
【问题讨论】:
-
你为什么不在 Stack Overflow 上提问? meta.stackexchange.com/a/129632/165773
-
@gnat 为什么我不应该问程序员?
-
这个问题属于 StackOverflow,因为它是关于一个实现问题。
-
您是否检查了先前评论中提到的meta guidance? “如果您的代码或 IDE 不起作用,请继续询问...”等
-
''不是有效值吗?
标签: string regex string-matching