gpt4 book ai didi

java - 仅当特殊字符不在单词内部时才从字符串中删除特殊字符

转载 作者:行者123 更新时间:2023-12-02 08:46:32 25 4
gpt4 key购买 nike

我想替换字符串中的所有特殊字符,但前提是不在单词内。

特殊字符:<>{}\"/|;:.,~!?@#$%^=&*'

示例:

String str = "//won't won't wo/'n't wont wont'."
str.replaceAll(,"") // "won't won't won't wont wont"

有人知道如何通过正则表达式实现这一点吗?

最佳答案

这个正则表达式:

(?<!\w)\W+|\W+(?!\w)

匹配两个备用正则表达式中的任何一个。 (1|2)

  1. 前面没有单词字符 ( \W ) 的任何特殊字符(非单词字符: \w )
  2. 后面不跟单词字符的任何特殊字符。

这是有效的,因为如果其中任何一个匹配,则特殊字符不得出现在单词中

“位于前面”:正向回顾。 (?<=y)X : X 前面有 y
“不位于前面”:否定后向查找。 (?<!y)X : X 前面没有 y
“后面是”:正向前看。 X(?=y) : X 后面跟着 y
“后面没有”:否定前瞻。 X(?!y) : X 后面没有 y。

您应该替换 \W使用您的一组特殊字符(适当转义)

此解决方案需要注意的一件事是它不依赖于空白的存在。

关于java - 仅当特殊字符不在单词内部时才从字符串中删除特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61049643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com