Соответствует только регулярному выражению в строке c #

2

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

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

1234 - матч
ab1234cd - не соответствует 012345 - не соответствует

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

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

Теги:

4 ответа

6
Лучший ответ

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

  • 0
    Да, ^\d{4}$ для строки, которая содержит ровно четыре цифры.
  • 0
    Это работает, спасибо за быстрый ответ
3

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

^\d{4}$

Чтобы соответствовать только (начало строки) четыре цифры (конец строки).

1

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

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

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню