java使用正则表达式删除单词开头或结尾的撇号
我有一个包含word的String
列表。有些单词的开头或/和结尾有撇号,如下所示:
apple
'orange
banana'
joe's
我只想删除以下单词开头和结尾的撇号:
apple
orange
banana
joe's
我已尝试使用以下正则表达式,但不起作用:
myString.replaceAll("((?<=^)'|'(?=$))", "");
但它与^{
为什么正则表达式不起作用,如何删除开头和结尾的撇号强>
谢谢你的帮助
# 1 楼答案
如果计划删除行首或行尾的单引号,则需要启用多行模式(例如,可以使用内联修饰符
(?m)
):由于
^
和$
是锚定、零宽度断言,因此不需要使用lookaround将这些锚定括起来如果您确实计划匹配未包含单词字符的
'
,请使用基于单词边界的解决方案:见regex demo
详细信息:
\B'\b
-一个{|
-或\b'\B
-前面有单词边界,后面有非单词边界的{在Java中,不要忘记对
\b
和\B
使用双反斜杠:# 2 楼答案
我理解我的错误,我忘了做作业
谢谢你,很抱歉这个愚蠢的问题