#regex #visual-studio
#регулярное выражение #visual-studio
Вопрос:
Мне поручено провести рефакторинг пространств имен в решении vs2015, удалив повторяющиеся слова.
- Мне нужно регулярное выражение FIND, которое возвращает эти пространства имен и все, что могло использоваться или на что ссылались.
- Мне нужно заменить регулярное выражение, чтобы удалить второе вхождение слова из пространства имен.
ПРИМЕР
TestApp.SA.TestApp => TestApp.SA
TestApp.TestApp.SA => TestApp.SA
Вот мое регулярное выражение для поиска (которое, я знаю, может быть лучше): TestApp.*?(TestApp)
Кто-нибудь, пожалуйста, помогите с выражением для замены, которое, я думаю, заключается в том, чтобы установить второе вхождение TestApp в пробел?
Комментарии:
1. Чтобы найти их, вы могли бы попробовать
(w ).(w .)*1
. Чтобы найти их, попробуйте(w )((?:.w )*).1
и замените на$1$2
.2. Большое спасибо, это работает, я просто думаю, что мне нужно уточнить выражение find, I возвращает некоторые нежелательные результаты, такие как цифры. Примером является поиск 1.0.0.0, и после замены я получаю 1.0.0. Большое спасибо за мгновенную помощь.
3. Да, вам нужно использовать
([A-Z]w*).([A-Za-z_]w*.)*1
или что-то в этом роде.
Ответ №1:
Шаблоны, которые я предложу, не являются на 100% безопасным решением, но покажут вам способ использования регулярных выражений для поиска и поиска и замены в ваших файлах.
Основными выражениями, которые вы можете использовать для этой задачи, являются
(w ).(w .)*1
и
Find: (w )((?:.w )*).1
Replace: $1$2
Смотрите демонстрацию регулярных выражений
Шаблоны означают:
(w )
— сопоставьте и запишите 1 буквенно-цифровые символы / символы подчеркивания в группу 1.
— соответствует буквенной точке(w .)*
— ноль или более последовательностей ((...)*
) символов из 1 слов, за которыми следует точка (каждое последующее подстановочное соответствие приведет к удалению буфера группы 2, но это не важно при простом поиске)1
— обратная ссылка на содержимое, записанное в группе 1
Второй шаблон почти такой же, просто группы захвата немного скорректированы для замены пронумерованных обратных ссылок для правильной замены текста.