gpt4 book ai didi

Java 正则表达式的行为不符合逻辑。替换文本中的单词

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:38 25 4
gpt4 key购买 nike

我不明白,为什么这个正则表达式不取代“dürfen”......我有一个输入文本,需要替换很多填充词。但有些由于某种原因被忽略了。这与空间有关,但我不明白。

    String input = "melanie rugullies eching trägt dirndl darüber das volksfestmadl stadt freising dürfen begeistern für tanzsport ";
//does not work
input = input.replaceAll("( dürfen )", " ");
input = input.replaceAll("(\\sdürfen\\s)", " ");
input = input.replace(" dürfen ", " ");

//works ...
input = input.replaceAll("(\\sdarüber\\s)", " ");
input = input.replaceAll("(\\smöchte\\s)", " ");
//input = input.replace(" dürfen", " "); //works but is not desired ...
System.out.println(input);

输出

melanie rugullies eching trägt dirndl das volksfestmadl stadt freising dürfen begeistern für tanzsport

预计“dürfen”不是输出的一部分..但它是!另一方面,“darüber”消失了......

最佳答案

此代码有效(不存在变音字母的问题),并且其正则表达式使字符串具有正确的间距:

input = input.replaceAll("\\W*\\bdürfen\\b\\W*", " ").trim();

这个正则表达式的一个小区别是它消耗任何一侧的任何非单词字符(即连字符等,而不仅仅是空格)并放入一个空格。然后修剪该结果以处理输入开始/结束时发生的替换的边缘情况。

关于Java 正则表达式的行为不符合逻辑。替换文本中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883826/

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