gpt4 book ai didi

java - 正则表达式java在文本中查找$foo?

转载 作者:行者123 更新时间:2023-11-30 03:42:20 26 4
gpt4 key购买 nike

如何在java中定义模式来识别

$foo

作为文本中的一个单词?

下面通过一个例子来更好地解释。我需要获得以下结果:

if word == $foo
then

$FOO yyyy -> found
$foo yyyy -> found
aaa aaaa $foo -> found
yyyy $fooxxx -> not found
yyyy $foo!!! -> Found
$fooaaaa -> not found
$foo: aaa -> found
A.foo -> not found
A .foo -> not found
A?foo -> not found
A foo -> not found

我尝试了这段代码,但它不起作用:

Pattern word_pattern = Pattern.compile("\\b\\$"+word+"\\b");
if(word_pattern.matcher(text).find()){
System.out.println("FOUND!");
return true;
}else{
System.out.println(":(");
return false;
}

最佳答案

我不完全清楚您的要求,但这可能适合您:

Pattern word_pattern = Pattern.compile("\\B\\$" + word + "\\b", Pattern.CASE_INSENSITIVE);

\B 测试非字边界。由于 $\B 之后,因此 $ 之前(行的开头)或 $< 之前不能有任何字符 必须是非单词字符才能匹配。

必须验证单词仅包含有效字符,我假设它是[a-zA-Z0-9_],这是 \w 和 的定义。如果您对有效字符的定义与[a-zA-Z0-9_]不同,则确切的解决方案可能会有所不同。

(我忘记了不区分大小写的匹配,Pshemo 的回答提醒了我)

关于java - 正则表达式java在文本中查找$foo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26564261/

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