JS regexp. Исключение группы из запоминания

196
20 июня 2018, 10:40

Имеется файл с строками вида

xxxxx@mail.ru id

Нужно вытащить xxxxx@mail.ru и id

Регулярное выражение для получения почты ^(.+)(?:\s+) почему-то тянет за собой еще и пробелы, хотя указал их исключение. Что я делаю неправильно? Интерактивный пример здесь https://regex101.com/r/hhL2d5/2/

Answer 1

Вы можете воспользоваться следующим регулярным выражением:

^(\S+)\s+(\S+)

Онлайн-демо

Подробности

  • ^ - начало строки
  • (\S+) - захватывающая подмаска №1: 1 и более символов, отличных от пробельных символов
  • \s+ - 1 и более пробельных символов
  • (\S+) - захватывающая подмаска №2: 1 и более символов, отличных от пробельных символов.

Код на JavaScript:

var s = "xxxxx@mail.ru      id"; 
var res = s.match(/^(\S+)\s+(\S+)/); 
console.log(res[1], "и", res[2]);

Если нужно получить подстроку до первого пробела, можно использовать /^\S+/:

console.log("xxxxx@mail.ru      id".match(/^\S+/)[0]);

READ ALSO
Восстановление interval-а по нажатию на кнопку

Восстановление interval-а по нажатию на кнопку

Нужно чтобы при нажатии на кнопку "Return Interval" процедура продолжала действиеЧто в коде неправильно?

194
Настройка роутера на Ангулар2+

Настройка роутера на Ангулар2+

Нужна помощь или совет в небольшой донастройке роутера на Angular2+Собственно, вот как все работает сейчас:

243
Как кликнуть на radio элемент с заданным текстом

Как кликнуть на radio элемент с заданным текстом

На странице есть radio элемент, на который я хочу кликнутьТаких элементов много, поэтому я хочу найти нужный и кликнуть на него

180
Меню на главной на всех других страницах прячется в “Каталог” при нажатии показывается!

Меню на главной на всех других страницах прячется в “Каталог” при нажатии показывается!

Затея такая: на главной странице есть менюшкаКогда перехожу на любую другую страницу эта менюшка скрыта в "Каталог" и когда я нажимаю на каталог...

272