2013-10-04 5 views
1

Скажем, у меня есть строка «this is an example», и я стараюсь, чтобы соответствовать его против /\d*/, мое предположение было то, что вся строка будет соответствовать, но только матч я получил, был позиции (до t между t и h, и т.д.).Почему d * совпадает с позициями?

Почему это происходит?

+2

\ d для цифры, поэтому \ d * для цифр или ничего. И ничто не соответствует повсюду. – lynxlynxlynx

+0

\ d - цифры./\ d */- это многочисленные цифры подряд. Я удивлен, что вы получаете какие-либо матчи./(\ w + \ s?)/будет по крайней мере соответствовать каждому слову. –

+0

@lynxlynxlynx, что вы подразумеваете под «ничего не совпадает везде»? «Везде» тоже есть слова, верно? – daremkd

ответ

3

\d означает «любая цифра», * означает «ноль или больше».

Так что в этом случае оно соответствует каждой отдельной позиции в регулярном выражении, потому что это по существу «ничего не соответствует, или цифры, если есть некоторые».

Я не уверен, почему вы думаете, что \d* будет соответствовать строке нецифрового ...

+0

Как« ничего »не определено в регулярном выражении? ничего "в основном границы слов и позиции между символами? – daremkd

+1

@ daremarkovic« ничего »- это любая позиция между символами. Границы слов - это специальные типы« ничего », если вы хотите. – Jerry

0

\d является заполнителем для цифры (которые не могут быть сопоставлены с буквами). вы либо должны использовать \D, либо хотите выразить что-то другое.

0

Потому, что в «это пример»

  • перед тем «T» есть 0 или более цифр
  • между «т» и «ч» есть 0 или более цифр
  • между «h» и «i» есть 0 или больше цифр

У вас есть фотография?

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