gpt4 book ai didi

Java正则表达式与可变字符串

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

我想找到 ListArray 中所有单词的出现次数,并将其与字符串进行比较。到目前为止,我能够将其作为 for 循环来执行,其中我存储所有可能的组合并使用匹配来运行它们,即

        for(String temp_keywords: keywords){
final_keywords_list.add(" "+ temp_keywords+ " ");
final_keywords_list.add(" "+ temp_keywords+".");
final_keywords_list.add(" "+ temp_keywords+ ",");
final_keywords_list.add(" "+ temp_keywords+ "!");
final_keywords_list.add(" "+ temp_keywords+ "/");
final_keywords_list.add(" "+ temp_keywords+ "?");
}
for (String temp_keywords : final_keywords_list) {
String add_space = temp_keywords.toLowerCase();
p = Pattern.compile(add_space);
m = p.matcher(handler_string);
int count = 0;
while (m.find()) {
count += 1;
}

但是,我想删除组合的手动添加并执行正则表达式。我看过带有正则表达式的单词示例,但是如何将变量字符串添加到正则表达式中?抱歉,我是一个java初学者。

最佳答案

这是您需要的吗?

String inputString = ....
String[] keywords = ....

StringBuilder sb = new StringBuilder();
for(String keyword: keywords)
sb.append("(?<= )").append(keyword).append("(?=[ .,!/?])").append("|");
sb.setLength(sb.length() - 1); //Removes trailing "|". Assumes keywords.size() > 0.

Pattern p = Pattern.compile(sb.toString());
Matcher m = p.matcher(inputString);
int count = 0;
while (m.find())
count++;

它创建一个正则表达式,对其进行编译,然后对匹配项进行计数。

关于Java正则表达式与可变字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22626913/

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