Regex 在匹配模式之前保留字符串字符

Regex 在匹配模式之前保留字符串字符,regex,Regex,我试图找到某个模式的所有匹配项,并用另一个文本替换它。但是,我还需要在匹配模式之前出现的文本之前添加一个字符。举例说明我的意图;我需要转换以下部分: listName != null && listName.size() > 0 致: 如您所见,我不仅需要将size()>0替换为isEmpty(),还需要添加就在listName之前,因此解析器应该向后读取,直到到达空格或制表符。我尝试了以下方法,但没有成功 [ (.*?)\size\(\) > 0]\1 !$1i

我试图找到某个模式的所有匹配项,并用另一个文本替换它。但是,我还需要在匹配模式之前出现的文本之前添加一个字符。举例说明我的意图;我需要转换以下部分:

listName != null && listName.size() > 0
致:

如您所见,我不仅需要将
size()>0
替换为
isEmpty()
,还需要添加
就在
listName
之前,因此解析器应该向后读取,直到到达空格或制表符。我尝试了以下方法,但没有成功

[ (.*?)\size\(\) > 0]\1

!$1isEmpty()

您可以使用此搜索替换:

pattern: (\S+?\.)size\(\) > 0\b
replacement: !$1isEmpty()

\S
意味着所有的东西都不是空格,
+?
是一个懒惰的量词,它在
.size()…

您使用的是哪种语言?@devnull我正在使用Eclipse的Find/Replace功能,据称它支持正则表达式。此模式不适用于if((variants!=null)&&&(variants.size()>0)){@MarkusLausberg:的确,幸运的是,它不是搜索到的字符串。很遗憾,我认为我可以使用它。您有第二个版本的常规表达式吗?;)
pattern: (\S+?\.)size\(\) > 0\b
replacement: !$1isEmpty()