【发布时间】:2011-06-12 19:19:20
【问题描述】:
我正在尝试提取所有具有偶数个 B 和奇数个 C 的字符串。我有正则表达式来匹配奇数 A 甚至 B,但我无法让两者一起工作。字符串由空格(制表符、换行符、空格)分隔。
例如
XABBAC ABCDEBCC ABSDERERES ABBAAJSER HGABAA
我有奇数的 A
\b[^A]*A([^A]*A[^A]*A)*[^A]*\b
甚至是 B 的
\b[^B]*(B[^B]*B[^B]*)*[^B]*\b
我知道我需要使用 +ve lookahead 并尝试过:
\b(?=[^A]*A([^A]*A[^A]*A)*[^A]*\b)[^B]*(B[^B]*B[^B]*)*[^B]*\b
但它不起作用 - 有人知道为什么吗?
【问题讨论】:
-
似乎工作in ruby。您能否举一个不适合您的示例,并提供您的 Java 代码?
-
@marcog 哈哈。在红宝石中,这将是一个简单的单行。
data.split.select{|x| x.count("B").even? && x.count("C").odd?}结果:["XABBAC", "ABCDEBCC"] -
“问题”?严重地?这就是你标记这个?与所有其他不涉及某种问题的问题相反?...重新标记...
标签: regex