Я пытаюсь сопоставить \w+,\w+
выражения, если сразу за ними не следует (
Итак, чтобы привести пример, я ищу регулярное выражение, которое соответствует таким выражениям, как
X_11,A
и Y,C_A
, но не XNR,B
и Y,A
в таких строках, как
X_11,A+0.7*Y,A(-12)-0.3(XNR,B(-1)-Y,C_A)
Я пробовал различные решения, предложенные в связанных сообщениях, которые используют отрицательный прогноз. Но в лучшем случае сопоставляется только последний термин Y,C_A
(через (\w*,\w*)(?!.*\()
), но очевидно, что он смотрит слишком далеко вперед для более ранних условий. Прямолинейный (\w*,\w*)(?!\()
по-прежнему захватывает XNR,
, чего я не хочу. Я также пробовал более сложные решения. Похоже, что они используют определенные особенности проблемы, например, что есть только один интересующий термин в строке, постоянные подстроки, границы слов и т.д. Что мне не хватает?
\w+,\w+(?![(\w])
или\w+,\w+\b(?!\()
- person Wiktor Stribiżew   schedule 26.02.2020