Регулярное выражение в .net найти все вхождения после определенной строки - PullRequest
1 голос
/ 07 мая 2019

Очень плохо знаком с регулярным выражением. Я хочу сопоставить все вхождения строки, которая происходит после определенного шаблона, но я не могу найти регулярное выражение для этого (в .net).

Строка выглядит примерно так:

MAIN SKUID="AAAAAA" any number of characters here  AdHocID="123456" some characters AdHocID="856322224" ..some chars again etc.....

Я хочу найти все признаки "AdHocID = цифры (включая кавычки)", только если есть

MAIN SKUID="AAAAAA" где-то раньше. Если SKUID не AAAAAA, тогда мне не нужны эти строки AdhocID.

В настоящее время я использую шаблон регулярных выражений

(?<= SKUID="AAAAAA" )(?:.*)AdHocID={d,} .*

Я искал по нитям и попробовал несколько шаблонов без удачи

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Вы можете добавить часть .* к виду, который поддерживается в .NET.

Чтобы сопоставить цифры, вы должны использовать \d+.Использование фигурных скобок, которые выглядят как \d{1,}

(?<=SKUID="AAAAAA" .*)\bAdHocID="\d+"

.NET regex demo

0 голосов
/ 07 мая 2019

Вместо внешнего вида вы также можете использовать непрерывное сопоставление с помощью токена \G, например

(?:\G(?!^)|SKUID="AAAAAA").*?\b(AdHocID="\d+")

Демо

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