Как заменить. символ в коде с регулярным выражением? - PullRequest
0 голосов
/ 23 апреля 2020

Я уже прочитал внешние сообщения StackOverflow и попробовал веб-сайты регулярных выражений.

Я хочу заменить точку подчеркиванием:

aab. ccc -> aab_ ccc

но в коде Matlab есть вычисления:

cost11 =aab.ccc*(v1.^3.*t11  + 1.5*v1.*a1.*t11.^2+ a1.^3.*t11./4/4) + aab.ccc.*t11; 

Точки. ^. * ./ заменять не следует. Мое регулярное выражение выглядит так: \.(?!(\^|\*|\/)$), но все равно выбирает все точки. Я также использую этот инструмент регулярных выражений: https://regex101.com/r/rMbYHz/306

Чего не хватает в регулярном выражении?

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Для данных примера вы можете использовать:

\.(?![*\/\d^])

По частям:

  • \. Совпадение с точкой
  • (?! Отрицательный взгляд
    • [*\/\d^] Соответствует либо * / a di git или ^
  • ) Закрыть взгляд.

Regex demo

Обратите внимание, что для шаблона (\^|\*|\/)$ вы можете сократить чередование , используя | до класса символов без трубы. Использование $ подтверждает конец строки, который может быть опущен в шаблоне.

1 голос
/ 23 апреля 2020

Удалить $

\.(?![\^|\*|\/])

https://regex101.com/r/Qwbcoc/1

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