有沒有人知道爲什麼我得到不同的結果取決於模式的順序?正則表達式掃描結果
list1 = ["AA1", "AA2","AA", "AA+"]
list2 = ["AA1", "AA2","AA+", "AA"]
results1 = "somethin with AA+ in it".scan(Regexp.union(list1))
results2 = "somethin with AA+ in it".scan(Regexp.union(list2))
結果1輸出「AA」 結果2輸出「AA +」
我可misunderstandig如何掃描的作品,但我期待它返回每一次出現,因此這兩個「AA」和「AA +」。另外我不明白爲什麼這個ouptut會根據所使用的字符串的順序而變化。
未錨定的交替組匹配第一個分支,一旦分支匹配其他分支未被測試。 –
我不認爲'Regexp.union()'在做你認爲的事情。它創建一個匹配任何提供的表達式的單一正則表達式。它不會遍歷列表並一次運行一個正則表達式匹配。 – Phylogenesis