2013-03-13 2 views
0

Я пытаюсь сделать REGEX для извлечения текста после First name:, Last name:, Email: и не включенной этикеткой.Матч начала строки текста возврата после матча

Вот мой текст между тегами.

<MyText> 
First name: Chris 
Last name: Jones 
Email: [email protected] 
</myText> 

Я играл вокруг с чем-то вроде этого: /(Last name:).*? Но это не работает. Кто-нибудь знает, как это решить?

+0

Какой диалект регулярных выражений вы используете? – MattW

+0

Спасибо за редактирование Wouter! –

+0

@mattw Я использую C# –

ответ

1

С .NET Regex, вы можете использовать положительные утверждения: 'назад

new Regex(@"(?<=Last name:).*"); 

В зависимости от контекста, вы, возможно, придется быть однако, механизм JavaScript регулярного выражения не поддерживает утверждения lookbehind, поэтому вы не могли, например, использовать эту клиентскую часть в ASP.NET RegularExpressionValidator.

+0

ах это один! "(? <= Фамилия:). *« Мне не нужно? в конце # –

+0

Спасибо, что это помогло! –

0

Попробуйте это регулярное выражение:

/^.*?: (.*)$/ 
+0

Извините Champ, я хочу три регулярных выражения для каждого ярлыка, первого и последнего. возвращая текст после: –

1

Я на самом деле не знаю ваш язык сценариев (поддержка REGEX может быть разница). Но что-то, как это должно работать:

/^.*?:(.*?)$/m 

Некоторые объяснений:

Регулярное выражение с m модификатора (//m) означает, что ^ и $ матч в начале и конце каждой строки, а не в начале и конце строка.

.*?: часть соответствует Last name:, First name:, ect. и потому что это не между круглыми скобками (()), это не фиксируется.

(.*?) часть соответствует все, что после двоеточия (:) и потому, что $ помещается после него, он не будет соответствовать все до конца строки. Это находится между круглыми скобками, что означает, что оно будет захвачено.


Чтобы ответить на ваши изменения, используйте:

/^First name: (.*?)$/m 
/^Last name: (.*?)$/m 
/^Email: (.*?)$/m 
+0

Это не работает. Я хочу, чтобы три регулярных выражения в общем по одному для каждой метки –

+0

@ChrisJones отредактировал регулярное выражение, чтобы сделать это –

+0

Еще раз спасибо за подробный ответ. –

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