在Ruby中,如果我有兩個正則表達式,我要創建另一個正則表達式這樣的可能性:斯卡拉正則表達式工會
a = /\d+/ # Matches digits
b = /\s+/ # Matches whitespaces
c = Regexp.union(a, b) # Matches sequences that consist only of digits or only of whitespaces
我想要做的斯卡拉同樣的事情,但我沒找到我怎麼能做到這一點。請注意,我沒有要求在前面的示例中創建像(\d+)|(\s+)
這樣的字符類的聯合的語法,我真的正在尋找從兩個給定的Regexps創建新的Regexp的可能性。
實際上,最後我不會爲兩個正則表達式做它,而是大量的。我不在乎分組或任何東西,我只想知道一個字符串是否與給定正則表達式列表中的某一個匹配。我可以在一個循環中檢查它們,但是效率太低,這就是爲什麼我需要一個Regexp來檢查聯合。
如果要匹配* this *或* that *,則必須使用Alternation'|'。 – stema
如果在Scala中不存在'類似於聯合體的方法,則可以檢索每個正則表達式使用的模式,然後像'(regex1)|(regex2)'手動合併它們,並從結果中創建一個新的正則表達式。 – Vulcan
@stema是的,我知道,如果我創建正則表達式,那麼我使用|,但如果我已經給了兩個正則表達式,並且我想將它們合併,我需要其他東西。 – Lykos