Может ли кто-нибудь дать мне пример регулярных выражений с помощью {x} и {x, y}?
Я только что узнал из книги о регулярных выражениях на языке Ruby. Я сделал это в Google, но все равно запутался в {x}
и {x,y}
.
В книге говорится:
{x} → Соответствие x вхождениям предыдущего символа.
{x, y} → Сопоставьте хотя бы x вхождений и не более, чем у вхождений.
Может кто-нибудь объяснить это лучше или привести несколько примеров?
Ответы
Ответ 1
Конечно, посмотрите на эти примеры:
http://rubular.com/r/sARHv0vf72
http://rubular.com/r/730Zo6rIls
/a{4}/
- короткая версия для:
/aaaa/
В нем говорится: сопоставить точные 4 (последовательные) символы 'a'.
где
/a{2,4}/
говорит: совпадение не менее 2 и не более 4 символов 'a'.
он будет соответствовать
/aa/
/aaa/
/aaaa/
и он не будет соответствовать
/a/
/aaaaa/
/xxx/
Ответ 2
Limiting Repetition
хороший онлайн-учебник для этого.
Ответ 3
Я очень рекомендую regexbuddy.com и очень кратко, ниже приведенное выражение выполняет следующие действия:
[0-9]{3}|\w{3}
Символы [] указывают, что вы должны соответствовать числу от 0 до 9. Это может быть что угодно, но [] - это буквальное совпадение. {} С 3 внутренними средствами соответствует наборам из 3 чисел между 0 и 9. | является выражением или. \W, является короткой рукой для любого символа слова, и еще раз {3} возвращает только числа из 3.
Если вы перейдете к RegexPal.com, вы можете ввести код выше и проверить его. Я использовал следующие данные для проверки выражения:
909 steve kinzey
и выражение соответствовало 909, "ste", "kin" и "zey". Он не соответствовал "ве", потому что он длиннее всего на 2 слова, а символ слова не охватывает пробел, поэтому он не может переносить на второе слово.
Ответ 4
Интервальные выражения
GNU awk ссылается на них как на "интервальные выражения" в разделе "Операторы Regexp" в его руководстве. Он объясняет выражения следующим образом:
{п}
{П,}
{П, т}
Один или два числа внутри фигурных скобок обозначают интервальное выражение. Если в фигурных скобках есть одно число, предыдущее регулярное выражение повторяется n раз. Если есть два числа, разделенные запятой, предыдущее регулярное выражение повторяется от n до m раз. Если есть одно число, за которым следует запятая, то предыдущее регулярное выражение повторяется как минимум n раз:
В руководстве также приводятся следующие примеры:
wh{3}y
Matches ‘whhhy’, but not ‘why’ or ‘whhhhy’.
wh{3,5}y
Matches ‘whhhy’, ‘whhhhy’, or ‘whhhhhy’, only.
wh{2,}y
Matches ‘whhy’ or ‘whhhy’, and so on.
См. также