Я не особо знаком со Scala, поэтому я не уверен, почему вокруг вашего RegEx так много цитат.Я собираюсь просмотреть это и попытаться подойти к вашему вопросу, используя неэкранированный RegEx \d+(\.\d+\.\d+)+
.
Это будет соответствовать словам, которые состоят из чисел, разделенных точками, с ограничением, что число чисел должно бытьнечетно, и их должно быть как минимум три.
То есть оно будет соответствовать 1.2.3
, а также 12.23.34.45
, но не 1.2
или 1.2.3.
.Фактическая часть совпадения будет просто вторыми двумя цифрами.
Я собираюсь предположить, что вы хотите сопоставить строки, которые состоят из двух или трех чисел, разделенных точкой, где вторая и третья могут быть подстановочными знаками,Это должно сработать:
\d+\.(?:\d+|x)(?:\.\d+|x){0,1}
(?:\d+|x)
- это группа без захвата (?:
), которая может быть либо x
, представляющим подстановочный знак, либо одним или несколькимицифры.
Мы также используем {0,1}
, чтобы указать, что у нас либо третья группа, либо однажды, или ее нет совсем.
Надеюсь, это поможет.Если вы хотите уточнить свои требования, я могу изменить свой ответ так, чтобы он соответствовал:)