regex, как я могу найти только два пробела и число? - PullRequest
0 голосов
/ 27 января 2012

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

\ s \ s5, чтобы найти эту строку. но я также нахожу некоторые строки, такие как \ s \ s \ s \ s5

123
4567
5
 5
  5
     5

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

<whitespace><whitespace>5

но не сопоставлять строку с более чем двумя пробелами?

<whitespace><whitespace><whitespace><whitespace>5

Ответы [ 3 ]

4 голосов
/ 27 января 2012

Прикрепите ваше регулярное выражение к началу строки (^):

^\s\s5
0 голосов
/ 27 января 2012

На языке регулярных выражений, где \ s - это пробел:

[^\s]\s\s5

(при этом будет найден любой экземпляр 5, следующий за 2 пробелами, то есть «abc 5» будет соответствовать; не уверен, что это ваш вопрос или вы спрашиваете о начале строки, другие ответили на это)

0 голосов
/ 27 января 2012

Вам нужно указать, что вы ищете полную строку:

^\s\s(\d+)$

, где ^ обозначает начало строки, а $ конец строки.

Это также зависит от того, на каком языке вы работаете, потому что в Java java.util.regex.Matches есть метод find(), который будет соответствовать внутри строки, и метод matches(), который будет соответствовать всей строке.

...