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()