在括号之间的字符串中查找特定字符的所有出现位置,该字符串位于另一个字符串本身(REGEX)之后



我正在尝试使用Regex(和Atom编辑器(将/替换为.,以便$app->call( 'text/'. $var .'/e );变成$app->call( 'text.'. $var .'.e );

但到目前为止运气不佳,我想到的是:

(?<=()[^)]?[/]+(?=))

由于某些原因,它只有在正斜杠是字符串的唯一字符时才会捕获:https://regex101.com/r/zgPl5F/1

我在这里错过了什么?

我的想法是针对一个特定的类来批量编辑传递给其函数的参数(在Atom编辑器中(,使$app->xxx(*/*)变成$app->xxx(*.*)(其中xxx始终是函数名(。总之:

^($app->w)+(?<=()[^)]?[/]+(?=))

编辑:根据@Wiktor的回答,我试过这个,但不起作用:

^($app->w)+(/(?=[^()]*)))+

注:。这不是完全相同的问题。

您可以在Notepad++或SublimeText中使用以下解决方案:

(?:G(?!A)|^$app->w+()[^()]*?K/(?=[^()]*))

请参阅regex演示。

详细信息

  • (?:G(?!A)|^$app->w+()-前一匹配的结束(G(?!A)(或(|(行的开始,$app->,1+字字符和((请参见^$app->w+((
  • [^()]*?-0个或更多,但尽可能少,()以外的字符
  • K-匹配重置运算符
  • /-斜线
  • CCD_ 18之后是除CCD_ 19和CCD_ 20之外的0+个字符,然后是CCD_ 21

相关内容

最新更新