2015-07-28 2 views
9

В нескольких недавних вопросах здесь, в Stack Overflow, я видел последовательность регулярных выражений .{1}. В двигателях регулярных выражений, с которыми я знаком, количество повторов 1 равно строго избыточно.Недостаток использования. {1} в regex

Есть ли механизм регулярных выражений, о котором я не знаю, для чего это неправда?

Может ли это явное подсчет 1 быть попыткой прокомментировать/выделить, что предшествующий . является метасимволом?

Я просто пытаюсь понять мотивы этой практики.


Ссылка: Regex with $ anchor and look ahead является самым последним ... ищет другие ...

+4

Очень хорошо быть одной точкой. Я не знаю никакого механизма регулярных выражений, где '. {1}' отличается от '.' – anubhava

+0

@Jongware Это правдоподобное объяснение ... – tjd

+7

@Jongware: Представляю, что вы имели в виду« Вы можете положить '{1}' ' _after_ ничего ", а не _before_. Вы хотите удалить и воссоздать свой комментарий, чтобы его можно было поддержать? –

ответ

5

Ввода {1} после любого повторяемого срока не имеет никакого эффекта.

Я мог бы понять, если {1} появился в регулярном выражении, который был генерироваться используя переменную для подсчета срока, например:

String regex = "foo.{" + n + "}bar"; 

, чтобы соответствовать "foo" и "bar" разделены n символами. Когда n оказался 1, вы получите "foo.{1}bar".

+0

Я могу сказать вам, что в прошлом я делал именно такие вещи, где мне приходилось писать код, чтобы взять какую-то проприетарную строку формата и преобразовать ее в регулярное выражение. Я получаю счетчик для числа последовательных вхождений, и это преобразуется в '' {"+ count +"} "'. Когда 'count == 1', было проще просто оставить его, так как двигатели регулярных выражений правильно проанализировали его и не нуждались в модификации моего кода. –

+0

Яркий ответ (+1), но я не уверен, что он соответствует контексту, в котором я его видел. – tjd

+3

Это действительно единственный контекст, в котором есть смысл, что у вас будет что-то подобное. В противном случае это просто круто. –

Смежные вопросы