gpt4 book ai didi

java - 使用正则表达式在每个单词的末尾附加一个字符

转载 作者:行者123 更新时间:2023-12-01 16:13:22 24 4
gpt4 key购买 nike

我正在寻找一个正则表达式(Java),它将在每个单词末尾附加 '~' 字符。
我的要求是:

  1. 在每个单词末尾添加 ~
  2. 如果单词中有任何特殊字符,则不要附加“~”。
  3. 如果有多个空格,应将其修剪为单个空格。

请看下面我的示例:

Input: Hello World   How* A1e Y?u
Output: Hello~ World~ How* A1e~ Y?u

我从论坛获得了帮助并且可以实现它,但我无法实现#2。
我的代码片段:

pattern = ([^\\s][a-zA-Z0-9])(\\s|$);
pattern.matcher(searchTerm).replaceAll("$1~$2");

如果word有特殊字符,如何跳过附加操作?请提出建议。

最佳答案

我建议使用

searchTerm = searchTerm.replaceAll("(?<!\\S)\\w++(?!\\S)", "$0~").replaceAll("\\s{2,}", " ").trim();

请参阅Java demo

详细信息

  • (?<!\S) - 负向后查找确保当前位置之前有空格或字符串开头
  • \w++ - 1 个或多个单词字符
  • (?!\S) - 负向前视确保当前位置后面有空格或字符串开头。

$0是整个匹配值。

.replaceAll("\\s{2,}", " ") (对于常规空格,只需将 \\s 替换为空格)部分将任何两个或多个空白字符“收缩”为单个空格,并且 .trim()部分修剪结果两端的空白。

关于java - 使用正则表达式在每个单词的末尾附加一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62472267/

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