Regex соответствует 1 или менее появлению строки? - программирование
Подтвердить что ты не робот

Regex соответствует 1 или менее появлению строки?

Предположим, что я хочу, чтобы регулярное выражение соответствовало "Перепрыгивать через этот мост FOOL", а также "Перепрыгивать через этот мост". Как сделать "FOOL" необязательным (0 или 1 вхождение)?

4b9b3361

Ответ 1

Возможно, вы захотите ознакомиться с учебником по регулярному выражению.

Необязательные части регулярного выражения указываются с вопросительным знаком:

Jump over this bridge( FOOL)?

Если вы хотите совместить любую строку, которая включает FOOL меньше, чем дважды, все становится немного сложнее. Тогда вам было бы лучше использовать более продвинутую концепцию негативный просмотр:

^(?!(.*FOOL){2})

Это превращает логику в его голову и утверждает, что строка не содержит 2 (или более) экземпляров FOOL.

Ответ 2

Вы можете использовать метку ?, чтобы указать появление группы как необязательной (происходит 0 или 1 раз), или вы также можете использовать фигурные скобки с минимальными/максимальными значениями как 0 и 1, поэтому ответ:

Jump over this bridge( FOOL)?

или

Jump over this bridge( FOOL){0,1}

Ответ 3

Попробуйте сделать это:

Jump over this bridge( FOOL)?

Вы также можете поместить набор строк:

Jump over this bridge( FOOL| FOOB)?