Соответствует только регулярному выражению в строке c # - PullRequest
2 голосов
/ 09 января 2010

Я не слишком хорош с регулярными выражениями, так что это может быть очевидным вопросом.

Я хочу, чтобы мое выражение совпадало, если было найдено определенное количество символов, и не выполнялось, если присутствуют какие-либо дополнительные символы. Например, если у меня есть строка, которая должна иметь 4 цифры, следующее должно быть истинным.

1234 - совпадение
ab1234cd - не соответствует
012345 - не соответствует

Пока у меня есть \ d {4}, но я понимаю, что это будет просто совпадение с любой строкой, в которой есть 4 цифры вместе где угодно Я хочу сопоставить, только если строка содержит 4 цифры и ничего больше.

Любая помощь будет оценена. Спасибо.

Ответы [ 4 ]

6 голосов
/ 09 января 2010

Используйте ^ и $, чтобы отметить начало / конец строки.

3 голосов
/ 09 января 2010

В зависимости от того, как вы его реализуете (однострочный или многострочный режим), вы можете использовать что-то похожее на:

^\d{4}$

Только для совпадения (начало строки) с четырьмя цифрами (конец строки).

1 голос
/ 09 января 2010

\ b [0-9] {4} \ b или ^ \ d {4} $ должны работать оба. Может быть, я мог бы немного подробнее рассказать о том, что сказал GrayWizardx (на тот случай, если вы не используете регулярные выражения в C # так часто), представленные выше регулярные выражения ищут строки, которые имеют только 4 цифры. По умолчанию (если память мне не мешает), механизм регулярных выражений просматривает только первую строку, поэтому, если у вас есть строка, состоящая из более чем 1 строки, и вы хотите проверить всю строку (например, строка была загружен из файла), вы бы добавили опцию RegexOptions.MultiLine. таким образом, двигатель будет смотреть и на другие строки.

Надеюсь, это было полезно:)

0 голосов
/ 09 января 2010

Я верю, что \b[0-9]{4}\b должен добиться цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...