我正在尝试使用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