2016-09-30 4 views
0

Привет Я хочу, чтобы захватить все перед словом контакт Eg:Reg Exp Захват все до определенного слова в VBA

15 Lecky Road 
Ballinderyy 
Upper Lisburn 
BT28 2QA 
Contact: Anna Murphy 
Telephone: 02892 610634 
Fax: 02892 610635 

Это мое регулярное выражение:

(.|\n)*Contact$ 

Благодаря

+1

Вы можете разбить строку с 'Контакт:' и захватить первый пункт. –

ответ

0

Если вы действительно хотите сделать это с помощью регулярного выражения, это должно сделать это за вас:

^([\s\S]+)\s*Contact 

Он фиксирует все, включая линейные каналы и прочее, до Последнее появление слова Contact. Если есть несколько Contact «ы, и вы просто хотите, чтобы захватить до первого, изменить RE быть нежадным:

^([\s\S]+?)\s*Contact 

See it here at regex101.

+0

Спасибо. Мне также необходимо исключить контакт, поэтому я немного изменил формулу '^ ([\ s \ S] *) (? = Contact)' –

+0

ОК. FYI - тогда это не захватывает вас, вы хотите - это совпадение;) Матч - это все, что соответствует регулярному выражению (не включает look-arounds), захват, захваченный внутри группы захвата. – ClasG

1

Я хотел бы использовать:

answer=split(s,"Contact:")(0) 

гораздо быстрее, чем регулярное выражение

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