让 PropDefinition 成为 prop\d+ (true|false)
形式的字符串
我有一个像这样的字符串:
((prop5 true))
sat
((prop0 false)
(prop1 false)
(prop2 true))
我想仅在文本“sat”之后提取底部的 PropDefinitions,因此匹配应该是:
prop0 false
prop1 false
prop2 true
我最初尝试使用 /(prop\d (?:true|false))/s
( see example here ) 但这显然匹配所有 PropDefinitions 而我不能'让它只在 sat
字符串之后匹配重复
我在上面使用 rubular 作为示例,因为它很方便,但我真的在寻找与语言最无关的解决方案。如果它是重要信息,我很可能会在 Java 应用程序中使用正则表达式。
最佳答案
str =<<-Q
((prop5 true))
sat
((prop0 false)
(prop1 false)
(prop2 true))
Q
p str[/^sat(.*)/m, 1].scan(/prop\d+ (?:true|false)/)
# => ["prop0 false", "prop1 false", "prop2 true"]
关于java - 正则表达式仅在字符串之后匹配重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22051862/