>我有一个XPath
//*[@title='ab'cd']
我想将其输出为
//*[@title='ab\'cd']
我正在使用此代码
property = property.replaceAll("^[a-zA-Z]+(?:'[a-zA-Z]+)*", "'");
但它是输出
//*[@text='ab'cd']
我在StackOverflow上找不到类似的问题,如果有,请在评论中发布链接。
要替换两个字母之间的'
,您需要一个(?<=p{L})'(?=p{L})
正则表达式。
(?<=p{L})
是积极的后视,需要紧靠当前位置左侧的字母,(?=p{L})
是积极的前瞻,需要紧邻当前位置右侧的字母。
替换参数应该是"\\'"
,需要4个反斜杠才能替换为一个反斜杠。
请参阅Java演示:
String s= "//*[@title='ab'cd']";
System.out.println(s.replaceAll("(?<=\p{L})'(?=\p{L})", "\\'"));