我希望能夠在一行中捕獲重複組。我做了如下所示的工作;正則表達式:無法找到重複模式
(((?:\s*^>\s*[0-9]+\s*,\s*[0-9]+\s*,\s*[a-zA-Z]+\s*(,\s*[a-zA-Z]+\s*)*;$\s*)|(?:\s*^>\s*[0-9]+\s*,\s*[0-9]+\s*,\s*[a-zA-Z]+\s*,\s*[0-9]+\s*(,\s*[\-]?[0-9]+\s*)*;$\s*))+)
它捕獲> 9, 2, door, open;
和> 3, 3, door,1, 1;
分別罰款。不過,我也想捕獲> 9, 2, door, close; > 1, 9, door, close; > 3, 3, door, 1, 1;
。我最後用+量詞括號括起了我的小組,但它沒有正確捕獲重複模式。你能告訴我我做錯了嗎?
EDITED
我提出的正則表達式稍短如下;
(((\s*>\s*\d+\s*,\s*\d+\s*,\s*\w+\s*(,\s*\w+\s*)*;\s*)|(\s*>\s*\d+\s*,\s*\d+\s*,\s*\w+\s*,\s*\d+\s*(,\s*[\-]?\d+\s*)*;\s*))+)
不要使用'\ w'而不是'[a-zA-Z]',除非你的意思是因爲它取決於你的語言環境,它可能也包含'_'。 – ophidion
你在同一時間發佈了答案,我找出答案。我會接受這個答案,因爲你提供了一些我從未見過的有價值的信息,'\ w' vs'[a-zA-Z]'。 – ikel