gpt4 book ai didi

Java 正则表达式 : Remove all except specific phrases and words

转载 作者:行者123 更新时间:2023-12-02 00:57:08 26 4
gpt4 key购买 nike

我正在尝试删除除某些短语之外的所有内容。我想知道是否有一个仅使用正则表达式的巧妙解决方案:

String strEthnicity = "the person should be East Asian or African American or Hispanic.";
String strRegex = "\\b(?!hispanic|caucasian|african american|east asian))\\b\\S+";

strEthnicity = strEthnicity.toLowerCase().replaceAll(strRegex,"");

唯一的问题是它不能很好地处理短语,只能处理单个单词......

It returns: "east african hispanic"

Instead of: "east asian african american hispanic"

我尝试使用括号,并且还查看了看起来相似的 this question,但我想看看是否有比给定的解决方案更好的解决方案(它也不是 java,因此希望不被视为重复)

最佳答案

使用 (?i)\\b(hispic|caucasian|african american|east asian)\\b 作为正则表达式。

演示:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
public static void main(String[] args) {
String strEthnicity = "the person should be East Asian or African American or Hispanic.";
String strRegex = "(?i)\\b(hispanic|caucasian|african american|east asian)\\b";
Pattern pattern = Pattern.compile(strRegex);
Matcher matcher = pattern.matcher(strEthnicity);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}

输出:

East Asian
African American
Hispanic

请注意,(?i) 用于忽略大小写,因此您无需将字符串转换为任何大小写。

关于Java 正则表达式 : Remove all except specific phrases and words,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61215147/

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