2015-04-23 2 views
0

Мне нужно захватить текст после знака равенства и ... i suck using regex.Как регулярное выражение после знака равенства

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

это то, что я получил:

(name).\s.(.*) 

Пример Строка
| имя = Нью-Йорк

мне нужно, чтобы захватить только «Нью-Йорк»
как я избавиться от знака равенства внутри регулярного выражения

Любые идеи?

+0

'имя = (. *) ', Может быть. – AbraCadaver

+0

Что вы пробовали? разместите здесь свой код. –

+0

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

ответ

1

Вы можете использовать RegExp name\s*=\s*([\S\s]+)

name проверяет на "имя" текст

\s* выбирает все пробелы (жадный), если существует какой-либо

= будет соответствовать = знак

([\S\s]+) Выберете все символы cters

Добавить флаг i, чтобы сделать регистр без учета регистра. Если вы хотите только одно пространство, чтобы быть действительным, замените \s* с \s{0,1}

Добавить [.] вместо [\S\s] и g флаг, чтобы он соответствовал несколько строк

RegEx101

Other Version

+0

не нужно быть не жадным для '\ s *' здесь :) –

+0

проверить это ..https: // regex101.com/r/hY5lZ4/2: P –

+0

благодарит за дополнительное объяснение –

1

Вы можете также используют

name\s*=\s*(.*) 

Demo and Explanation

+0

спасибо за помощь помощник - это тоже отлично работает –

+1

Happy to help :) –

0

Определенно не эксперт, но ^name.=.(.*) работал для меня.

Испытано регулярное выражение в regex101.com

+0

он будет соответствовать 'names = something' также –

+0

просто попробовал еще раз. по какой-то причине это не работает для меня - «Ваш шаблон не соответствует теме строки». –

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