我正在開發一種算法來解析一系列短字符串中的數字。這些字符串有點規則,但有一些不同的一般形式和幾個例外。我試圖建立一套正則表達式來處理各種形式和異常;我會一個接一個地申請他們,看看我是否得到一場比賽。匹配正則表達式中的可選子字符串
其中一種形式是這樣的:
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