【发布时间】:2013-04-27 19:14:05
【问题描述】:
我在使用正则表达式时遇到问题。
这里的问题:我有一个大文件要编辑,我想通过另一个保留第一个参数但删除第二个参数来更改函数。
假设我们有:
func1(paramIWantToKeep, paramIDontWant)
或
func1(func3(paramIWantToKeep), paramIDontWant)
我想改变:
func2(paramIWantToKeep) 在这两种情况下。
所以我尝试使用积极的前瞻
func1\((?=.+), paramIDontWant\)
现在,我只是尽量不选择第一个参数(然后我会设法对括号做同样的事情)。
但它不起作用,看来我的正则表达式在忽略正面向前看 (.+) 之后在向前看之前的相同位置寻找(, paramIDontWant\))(所以是左括号)
所以我的问题是,如何在匹配组之后继续正则表达式,在 (.+) 之后。
谢谢。
PS:对不起,我的问题的英文和/或糟糕的结构。
编辑:我使用 Sublime Text
【问题讨论】:
-
了解您希望使用哪种语言或编辑器可能会有所帮助,因为可以给出更易于理解的答案。这似乎是一项重构工作,但许多体面的编辑可以为您完成。
-
是的,我使用 Sublime Text,是的,我找到了重构的解决方法,但我仍然想知道如何在环顾四周后继续使用正则表达式,跳过我忽略的组。
-
这就是环视的工作方式,它们确保在某个位置出现条件。您不能“忽略”模式中的某些内容,无论您的模式是否匹配。您可以匹配某个模式,如果您对某个部分感兴趣,可以使用捕获组提取该部分。
-
“func1”和“func3”是否已知?即他们正是这些名字吗?
-
所以我无法在正则表达式中得到类似的东西:3232stringIDontWant32344 只保留数字?
标签: regex lookaround