Пример входной строки:
(F1 (F2 X (Y) Z) (F3 A B)
То, что я хочу сопоставить: \w+
, которому не предшествует (
, если за ним не следует )
В этом случае: X
, Y
, Z
, A
и B
Временное временное решение (которое, как я знаю, позже вызовет у меня проблемы) - /\(\w+\)| \w+/
, но, так как оно также соответствует пробелам, оно будет вызывать проблемы в дальнейшем, особенно когда дело доходит до замены спички.
Я провел некоторые эксперименты в области негативного взгляда сзади в виде:
/(?!=\()\w+/
... но я не могу найти способ объединить его с ", которому не предшествует ("
Просто чтобы прояснить:
- В этом случае все совпадения состоят из одной буквы, но фактические данные могут состоять из нескольких символов и даже не могут быть буквенно-цифровыми.
- Никакие пробелы или круглые скобки не могут быть частью возвращенного совпадения.