java - 正则表达式仅在字符串之后匹配重复模式

标签 java regex

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/

相关文章:

php正则表达式用星号替换每个字符

java - Spring依赖注入(inject) Controller

javascript - 正则表达式不应仅包含空格

java.lang.NoSuchMethodException : org. springframework.boot.autoconfigure.http.HttpMessageConverters 问题

java - 当 Vector 位于包含类中时,使用 Vector 的 addAll( ) 函数时出现问题

Javascript 正则表达式 : remove space(s) if not surrounded by a letter

javascript自定义人性化过滤器

c - 如何在c中编写正则表达式来查找字符串是否为十六进制

java - 如何从 hibernate 中同一个表的结果中获取表中的数据

java - 用Java制作轮盘赌风格的Poly Wheel