ReEX在“中间”中用“java”替换单词的撇号
我有一个XPath
//*[@title='ab'cd']
我想把它输出为
//*[@title='ab\'cd']
我正在使用这个代码
property = property.replaceAll("^[a-zA-Z]+(?:'[a-zA-Z]+)*", "\'");
但它正在输出
//*[@text='ab'cd']
我在StackOverflow上找不到类似的问题。如果有,请在评论中发布链接
你可以在下面搜索框中键入要查询的问题!
我有一个XPath
//*[@title='ab'cd']
我想把它输出为
//*[@title='ab\'cd']
我正在使用这个代码
property = property.replaceAll("^[a-zA-Z]+(?:'[a-zA-Z]+)*", "\'");
但它正在输出
//*[@text='ab'cd']
我在StackOverflow上找不到类似的问题。如果有,请在评论中发布链接
# 1 楼答案
要在两个字母之间替换
'
,需要一个(?<=\p{L})'(?=\p{L})
正则表达式(?<=\p{L})
是一个正向的前向查找,需要一个紧靠当前位置左侧的字母,(?=\p{L})
是一个正向的前向查找,需要一个紧靠当前位置右侧的字母替换参数应该是
"\\\\'"
,需要4个反斜杠才能替换为一个反斜杠见Java demo: