2014-09-13 3 views
3

Я использую Notepad ++ для удаления некоторых нежелательных строк с конца шаблона, и это на всю жизнь меня достало.Убрать все персонажи после определенного матча.

У меня есть следующие наборы строк:

myApp.ComboPlaceHolderLabel, 
myApp.GridTitleLabel); 
myApp.SummaryLabel + '</b></div>'); 
myApp.NoneLabel + ')') + '</label></div>'; 

Я хотел бы оставить только myApp.[variable] и избавиться, например, ,, );, + '...' и т.д.

С помощью Notepad ++, я могу соответствовать строки сами, используя ^myApp.[a-zA-Z0-9].*?\b (это немного сумбурно, но это работает на то, что мне нужно).

Но на самом деле мне нужно отрицать, что регулярное выражение, чтобы соответствовать всему в конце, поэтому я могу заменить его на пробел.

ответ

4

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

^(myApp\.[a-zA-Z0-9].*?\b).*$ 

Замена строки:

\1 

DEMO

ИЛИ

Совпадение только следующие символы, а затем заменить его с пустой строкой.

\b[,); +]+.*$ 

DEMO

2
(^.*?\.[a-zA-Z]+)(.*)$ 

Использование this.Replace по

$1

См демо.

http://regex101.com/r/lU7jH1/5

+0

Это именно то, что мне нужно, спасибо :) теперь, чтобы попытаться понять это! – keldar

+0

Это соответствует любой другой строке, которая не начинается с 'myApp' –

2

Я думаю, что это работает одинаково хорошо:

^(myApp.\w+).*$ 

Замена строки:

\1 



С difference between \w and \b regular expression meta characters:

  • \w означает "слово" характер, как правило, [A-Za-z0-9_]. Обратите внимание на включение подчеркивания и цифр.
Смежные вопросы