如何使用Java正则表达式去除文本中的双引号?
解决成对双引号移除的正则方案
嘿,我来帮你搞定这个正则问题!你要做的是把文本里成对包裹内容的双引号去掉,比如把test "2"变成test 2对吧?之前你用的正则没效果,是因为没精准定位到双引号本身,也没正确捕获中间的内容。
可行的正则方案
直接用这个正则模式:
"([^"]*)"
替换的时候用$1(如果你的工具支持反向引用用\1也可以,大部分在线工具包括你常用的那个都支持$1)。
为什么这个能行?
":精准匹配开头的双引号;([^"]*):这是一个捕获组,匹配所有不是双引号的内容([^"]表示非引号字符,*表示可以是0个或多个),这样就能准确拿到引号里的目标内容;":匹配结尾的双引号;- 替换成
$1就是只保留捕获到的中间内容,自然就去掉了前后的双引号。
测试示例
原文本:test 1 | test "2" | test 3
用上面的正则替换后,就会得到你想要的结果:test 1 | test 2 | test 3
如果遇到有嵌套双引号的复杂场景(比如test "a"b""c"),这个正则可能不适用,但从你的需求来看,处理这种简单的成对引号完全够用啦。
内容的提问来源于stack exchange,提问作者weltraumfahrer_x
相关产品推荐
相关产品推荐

