我有一个XPath
// * [@标题=' AB' CD']
我希望将其输出为
// * [@标题=' AB \' CD']
我正在使用此代码
property = property.replaceAll("^[a-zA-Z]+(?:'[a-zA-Z]+)*", "\'");
但正在输出
// * [@文本=' AB' CD']
我无法在StackOverflow上找到类似的问题。如果有请在评论中发布链接。
答案 0 :(得分:3)
要在两个字母之间替换'
,您需要(?<=\p{L})'(?=\p{L})
正则表达式。
(?<=\p{L})
是一个积极的外观,需要紧靠当前位置左侧的字母,而(?=\p{L})
是一个正向前瞻,需要紧靠当前位置右侧的字母。< / p>
替换参数应为"\\\\'"
,需要4个反斜杠替换为单个反斜杠。
请参阅Java demo:
String s= "//*[@title='ab'cd']";
System.out.println(s.replaceAll("(?<=\\p{L})'(?=\\p{L})", "\\\\'"));