Рубин регулярное выражение, чтобы найти вложенные играм
Мое регулярное выражение
/a .*programming .*test .*this/i
И тестовая строка
This is a test This is a programming test This is a programming test in any language
Матч, который я получаю, это
a test This is a programming test This
Но есть еще одно более короткое совпадение "тест программирования это" , которое это регулярное выражение не может найти, я использовал метод сканирования, чтобы найти все совпадения, но это даже не может захватить это .
Любая помощь очень ценится
1 ответ:
Регулярное выражение-очень сложная вещь! Вам действительно нужно знать, какие части вашей строки имеют решающее значение для соответствия, а какие нет. Есть масса способов выполнить матч, но не так просто угадать, чего вы на самом деле хотите:
s = "This is a test This is a programming test This is a programming test in any language" s.match(/a [^a]*programming .*test .*this/i)[0] => "a programming test This"