如何使用簡單的正則表達式匹配多個組。我嘗試這個:(?:key:)((?:\s*'[^']+'))
,但不起作用。正則表達式匹配組
輸入
鍵: 'VAL1' 'val2的' 'VAL3'
輸出
組1 = VAL1
組2 = val2的
組3 = VAL3
編輯:如何在所需的鍵後找到由簡單引號括起來的所有標籤?
如何使用簡單的正則表達式匹配多個組。我嘗試這個:(?:key:)((?:\s*'[^']+'))
,但不起作用。正則表達式匹配組
輸入
鍵: 'VAL1' 'val2的' 'VAL3'
輸出
組1 = VAL1
組2 = val2的
組3 = VAL3
編輯:如何在所需的鍵後找到由簡單引號括起來的所有標籤?
你不能直接做你想做的。使用正則表達式,您不能擁有可變數量的捕獲組。
但是,如果你的組數量有限,那麼你可以重複(?:\s*('[^']+')*)?
那個限制。因此,爲了能夠匹配你給出的例子,你需要。
key:(?:\s*('[^']+')*)?(?:\s*('[^']+')*)?(?:\s*('[^']+')*)?
注意(?:\s*('[^']+')*)?
已經重複3次。
可能更容易,更好地只是遍歷這個模式'[^']+'
。正如你沒有提到任何語言,我冒昧地在Python中做這件事。
import re
string = "'val1' 'val2' 'val3'"
for i, match in enumerate(re.finditer(r"'([^']+)'", string), start=1):
print("group %d = %s" % (i, match.group(1)))
上面在被執行時將打印:
組1 = VAL1
組2 = val2的
組3 = VAL3
所以,而不是試圖製作一個「可變」數量的捕獲組。相反,請嘗試迭代報價模式的所有匹配項。
可能與以下情況重複:http://stackoverflow.com/questions/37003623/how-to-capture-multiple-repeated-groups –
,這不能解決我的問題 –
發表一個結果應該是什麼樣的例子。也儘可能詳細地解釋搜索模式。就像你說的那樣,「羣」......一羣是什麼? – zer00ne