java中的正则表达式提取内容

时间:2013-12-06 08:37:22

标签: regex

我将读取包含字符串列表的文件。 这些字符串将发送到正则表达式进行验证 我设计了一个正则表达式,用于提取括号内的内容。 在parenethesis中可能有括号。我想在括号内提取内容,使得左括号的数量等于闭括号的数量。是否可以使用正则表达式。

2 个答案:

答案 0 :(得分:3)

如评论中所述:不,这是不可能的。

说明:RegEx不知道之前的匹配数量,因此无法检查其他事物是否匹配相同数量。

如果没有使用@akostadinov给出的代码。唯一的方法是创建一个OR-RegEx,每个可能的开放Paran计数与每个关闭的Paran计数相匹配。

这需要积极的前瞻,很多明星和许多追溯。

非常慢。

不要这样做,: - )

答案 1 :(得分:0)

我认为您可以更轻松地以自定义方式实现此检查字符。理想跟踪准码:

for (chars in myString) {
   if (char == "(") openCount++;
   if (char == ")") closeCount++;
   if (closeCount>openCount) throw new CrapException();
}
if (closeCount != openCount) throw new CrapException();

听起来合理吗?