替换 Java 中的撇号' in the middle of the word with '



>我有一个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})", "\\'"));

相关内容

  • 没有找到相关文章

最新更新