Как найти конкретную строку - PullRequest
0 голосов
/ 07 декабря 2018

Я использую Visual Studio 2017 и в длинном длинном текстовом файле. Я ищу определенную функцию, но не могу найти

. Вот какое регулярное выражение я использую

c\.CreateMap\<(\w)+\,\s+Address\>

, и я хочув этих

c.CreateMap<ClientAddress, Address>()

c.CreateMap<Responses.SiteAddress, Data.Address>()

и так далее.

Как только я добавляю «Адрес» в регулярное выражение, он перестает соответствовать любому.что я делаю не так?

Ответы [ 4 ]

0 голосов
/ 07 декабря 2018

Во втором примере у вас есть дополнительная точка, которая не обрабатывается.Ваше регулярное выражение нуждается в небольшой модификации.Кроме того, вам не нужно бежать < или > или , Используйте это,

c\.CreateMap<([\w.])+,\s+[\w.]*Address>

Демо

0 голосов
/ 07 декабря 2018

Для соответствия любой из функций вашего вопроса вы можете использовать:

c\.CreateMap[^)]+\)

Regex Demo

Regex Объяснение: enter image description here

0 голосов
/ 07 декабря 2018

Вы можете попробовать это

c\.CreateMap\<\w+\.?\w+?\,\s*\w*?\.?Address\>

Объяснение

  • c\.CreateMap\< - Совпадения c\.CreateMap\<.
  • \w+ - соответствует любому символу слова один или несколько раз.
  • \.? - соответствует '.'ноль или один раз.
  • \, - соответствует ','.
  • \s* - соответствует пробелу ноль или более времени.
  • \w - соответствует символу слованоль или более времени.
  • \.? - соответствует '.'ноль или один раз.
  • Address\> - совпадения Address\>.

Демо

PS -Если вы также хотите подобрать что-то подобное.

c.CreateMap<Responses.SiteAddress.abc, Data.Address.xyz>()

Вы можете использовать это.

c\.CreateMap\<(\w+\.?\w+?)*\,\s*(?:\w*?\.?)*Address(\.\w*)?\>

Демо

0 голосов
/ 07 декабря 2018

Вот общее регулярное выражение, которое я могу предложить:

c\.CreateMap\<[\w.]+,\s+(?:[\w.]+\.)?Address\>\s*\(\s*\)

Это будет соответствовать любому термину с точками или символами слова в первой позиции ромба.Во второй позиции он будет соответствовать Address или некоторым именам родительских классов, за которыми следует разделитель точек, а затем Address.

Demo

Обратите внимание, что я также включаю пустые скобки вызова функций в регулярное выражение.Кроме того, я допускаю гибкость пробелов, которые могут появляться после ромба или между скобками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...