我有輸入數據如下爲:正則表達式組重新結構化
AB
AB_Test
AB_Test123
預期輸出:
AB
AB_Test
我有正則表達式相匹配:
([A-Z]{2})(_([a-zA-Z]*))?
所以從上面的正則表達式,我得到$ 1 & $ 3中的字符串。我想修改正則表達式,使字符串在$ 1 & $ 2(從正則表達式中忽略第2組)。
現在我想要使用該組處理匹配的字符串。這就是爲什麼我希望它是順序的。
有沒有辦法改變上面的正則表達式?
我有輸入數據如下爲:正則表達式組重新結構化
AB
AB_Test
AB_Test123
預期輸出:
AB
AB_Test
我有正則表達式相匹配:
([A-Z]{2})(_([a-zA-Z]*))?
所以從上面的正則表達式,我得到$ 1 & $ 3中的字符串。我想修改正則表達式,使字符串在$ 1 & $ 2(從正則表達式中忽略第2組)。
現在我想要使用該組處理匹配的字符串。這就是爲什麼我希望它是順序的。
有沒有辦法改變上面的正則表達式?
你需要使用一個非捕獲組你不想:
^([A-Z]{2})(?:_([a-zA-Z]*))?$
編輯:我還添加了開始和結束的錨,因爲它似乎要匹配線路只有下劃線後的字符全部是字母。
嘗試'(([A-Z] {2})_?[a-zA-Z] *)'這是你在找什麼? [DEMO](http://regex101.com/r/mG3eL5/1) – Braj 2014-09-03 15:33:12