Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пробел в регулярном выражении (https://javascript.ru/forum/misc/63722-probel-v-regulyarnom-vyrazhenii.html)

N1kS 25.06.2016 14:29

Пробел в регулярном выражении
 
Здравствуйте!
Подскажите пожалуйста очередной вопрос по регулярным выраженияим, имеем 2 варианта строки:
name: Bob
и
name:Bob
разница лишь в том, что после "name" пробел может быть, а может и не быть, но нужно получить имя Bob без пробелов, и регулярное выражение типа
/(?:name:\s)/(.+)
не будет работать, если перед "Bob" нет пробела и наоборот. Возможно ли сделать какую-то проверку для определенного символа(в моем случае пробела), то есть проверку на то, что он может присутствовать или не присутствовать.

Заранее спасибо за помощь!

brexit2000 25.06.2016 14:45

ноль и более пробелов
re = /^foo *bar$/
console.log(
  re.test("foobar"),
  re.test("foo bar"),
  re.test("foo     bar")
)




//>>>> true true true

Если не только пробел, а любой пробельный символ, можете использовать метасимвол \s вместо пробела, или перечислите в группе [ \t....]

brexit2000 25.06.2016 14:47

Цитата:

Сообщение от N1kS
не будет работать, если перед "Bob" нет пробела и наоборот

квантификатор * или ?(нет или 1)

рони 25.06.2016 14:47

N1kS,
/(?:name:\s*)(.+)/

N1kS 25.06.2016 15:34

Цитата:

Сообщение от brexit2000 (Сообщение 420423)
квантификатор * или ?(нет или 1)

Не могли бы Вы более доступным языком объяснить что делает квантификатор * ? Прочитал на нескольких ресурсах, но не очень понятно.

brexit2000 25.06.2016 15:59

не уверен, что у меня понятней получится, но попробую. Это значит, что тот символ, который указан перед ним должен встречаться 0 или более раз(сколько угодно), в примере выше -- это пробел.


Часовой пояс GMT +3, время: 20:15.