gpt4 book ai didi

java - 使用正则表达式匹配以逗号结尾但不在另一个单词内的单词

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

我想使用正则表达式来实现两个目标:仅匹配完整单词的字符串(不匹配“contact”内的“on”),以及匹配以逗号或句点结尾的字符串。

这是一个例子。它的意思是在 str 中找到字符串 (str2) 并将其替换为用括号括起来的相同字符串。

while(scan2.hasNext()) {
    String str2 = scan2.next();
    str = str.replaceAll("\\b" + str2 + "\\b", "(" + str2 + ")");
}

它确实避免匹配单词中的字符串,但它会忽略以逗号或句点结尾的字符串。

我该怎么做?

最佳答案

public class Main {
public static void main(String[] args) {
System.out.println(replace("upon contact", "on"));
System.out.println(replace("upon contact,", "contact"));
System.out.println(replace("upon contact", "contact"));
}

private static String replace(String s1, String s2) {
return s1.replaceAll(String.format("\\b(%s)\\b(?=[.,])", s2), "\\($1\\)");
}
}

upon contact // matches only complete words

upon (contact), // replaces match with (match)

upon contact // only matches if ends with , or .

关于java - 使用正则表达式匹配以逗号结尾但不在另一个单词内的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684392/

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