PCRE, чтобы найти все возможные совпадающие значения - PullRequest
1 голос
/ 27 июня 2010

Я использую PCRE в PHP, и мне нужно найти способ генерировать, скажем, массив всех возможных совпадающих значений.Есть идеи?

Например, если бы у меня было R[2-9]{1}, я бы хотел:

R2
R3
R4
R5
R6
R7
R8
R9

1 Ответ

1 голос
/ 04 июля 2010

PCRE не имеет возможности генерировать образцы строк на основе регулярного выражения. Я не знаю библиотеки PHP, которая делает. Библиотеки, которые могут это делать, обычно поддерживают только ограниченные разновидности регулярных выражений и нуждаются в искусственных ограничениях для регулярных выражений, таких как R[2-9]*, которые могут соответствовать бесконечному числу строк.

Если вам нужно сделать это только для очень простых регулярных выражений, таких как R[2-9], то вам не составит труда:

  • Разобрать регулярное выражение в вашем собственном коде, чтобы сгенерировать примеры значений или использовать другой механизм.
  • Или использовать свой собственный механизм для указания «R, за которым следует цифра от 2 до 9», из которого ваш код может затем сгенерировать и регулярное выражение, и список значений выборки.
  • Или, если регулярные выражения жестко заданы в вашем исходном коде, просто наберите список значений вручную.
...