Как указать позиции, которые будут заменены регулярным выражением - PullRequest
0 голосов
/ 03 октября 2019

У меня есть регулярное выражение (?!\,)(?!X){3}[0-9\.\w\s\+\-\:\,]+ и строки типа

"1", "S1", "S2", "1", "2"
"1", "S1", "S2", "1", 2
"1", "S1", "S2", "1", "2", 3

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

Мне нужно обработать элементы "1", "S1", "S2" и пропустить элементы "1", "2". Первая идея состоит в том, чтобы указать в логике регулярных выражений, таких как «не принимать вхождения, которые сначала справа (« 2 »-2), а затем справа (« 1 »-1), но принимают все другие вхождения».

Основная идея состоит в том, что эта логика должна быть сделана только с регулярным выражением, а не с помощью кода C # (я говорю о сопоставлении позиции объекта в массиве соответствий C # - без логики C #, следует использовать только регулярное выражение).

Как я могу изменить свое регулярное выражение (?!\,)(?!X){3}[0-9\.\w\s\+\-\:\,]+, чтобы указать позиции, которые не должны обрабатываться?

1 Ответ

0 голосов
/ 03 октября 2019

Я думаю, вы хотите:

^.*(?= *, *"?.*?"?, *"?.*?"?)

Это будет соответствовать всему, что привело к последним двум элементам.

https://regex101.com/r/wMWaKF/2

...