W Ruby, jeśli mam dwóch wyrażeń regularnych, mam możliwość stworzenia innego wyrażenia regularnego tak:Scala Regex unia
a = /\d+/ # Matches digits
b = /\s+/ # Matches whitespaces
c = Regexp.union(a, b) # Matches sequences that consist only of digits or only of whitespaces
chcę zrobić to samo w Scala, ale nie znaleźliśmy się jak mogłem to zrobić. Zauważ, że nie pytam o składnię, aby utworzyć połączenie klas znaków, takich jak (\d+)|(\s+)
w poprzednim przykładzie. Naprawdę szukam możliwości utworzenia nowego Regexp z dwóch danych Regexp.
Właściwie, w końcu nie zrobię tego tylko dla dwóch Regeksów, ale dużej liczby. Nie dbam o grupowanie ani nic, po prostu chcę wiedzieć, czy ciąg pasuje do jednej z listy podanych Regeksów. Mogłem po prostu sprawdzić wszystkie z nich w pętli, ale to zbyt nieefektywne, dlatego potrzebuję jednego Regexp, aby sprawdzić związek.
Jeśli chcesz dopasować * to * OR * to *, musisz użyć opcji Alternation '|'. – stema
Jeśli w Scali nie ma metody "związkowej", możesz pobrać wzorzec używany przez każde wyrażenie regularne, a następnie połączyć je ręcznie, jak '(regex1) | (regex2)' i utworzyć nowe wyrażenie regularne z wyniku. – Vulcan
@stema Tak, wiem, jeśli tworzę Regexps, to używam |, ale jeśli mam już dwa Regexps i chcę je złączyć, potrzebuję czegoś innego. – Lykos