我正在开发一种算法来解析一系列短字符串中的数字。这些字符串有点规则,但有一些不同的一般形式和几个例外。我试图建立一套正则表达式来处理各种形式和异常;我会一个接一个地申请他们,看看我是否得到一场比赛。匹配正则表达式中的可选子字符串
其中一种形式是这样的:
X (Y) Z
其中:
- X是一个数字我想捕捉。
- Z是静态的,预先定义的文本。这基本上是我如何确定这种特殊形式是否适用。
- Y是一个未知长度和内容的字符串,由括号包围。
另外:Y是可选的;它并不总是出现在与Z和X.因此,一个字符串,我希望能够从所有这些字符串的提取数量:
- 10ž
- 20(FOO)z
- 30(条)z
现在,我有一个正则表达式,将捕获的第一个:
([0-9]+) +Z
我的问题是,我不知道如何构建一个正则表达式,它将匹配一系列字符,当且仅当它们被括在圆括号中。这可以在一个正则表达式中完成吗?然而
([0-9]+) (\([^)]+\))? Z
这不会与Y的嵌套的括号,工作,:
空格是静态的。将它们替换为\ s + – 2008-10-27 20:54:46