gpt4 book ai didi

java - java中的正则表达式没有产生期望的结果

转载 作者:行者123 更新时间:2023-12-02 07:57:53 24 4
gpt4 key购买 nike

我需要从具有大量随机数据的文本字符串中提取关键字。分享于Regular expression not extracting the exact pattern ,我创建了一个正则表达式:

Pattern p = Pattern.compile("\\b"+myKeywordToSearch+"s?\\b",Pattern.CASE_INSENSITIVE);

但是,这会忽略关键字开始之前带有数字/特殊字符的任何关键字。

如前所述,我需要计算所有这些关键字,如下所示:

12312312face
1face
$face
234%#$face
faces
4faces
$faces
faces
face's
faces'

虽然我不能接受这样的关键字:

facebook
duckface

我已经写了正则表达式

        Pattern p = Pattern.compile("\\b\\W"+myKeywordToSearch+"s?\\b",Pattern.CASE_INSENSITIVE);

其中关键字是我的关键字列表,但我没有得到所需的结果。关键词的数量非常少,没有我预期的那么多。您能阅读我的描述并请建议可能出现的问题以及如何解决它吗?

我的正则表达式要求是搜索文件中的关键字,可以是:

5face 
7face
$face
%face
face
faces
face's
faces'
face'
face4
face$
face <--Space after face

但它不会被读取

duckface
duckface1
duckface$
facebook
facebook
3facebook
&facebook
and so on...

到目前为止,我的正则表达式尝试效果不佳..

任何人都可以提出建议吗?谢谢。

我的多次尝试都是

("\\b"+mySearchKeyWord+"s?\\b",Pattern.CASE_INSENSITIVE);
("\\b\\W"+mySearchKeyWord+"s?\\b",Pattern.CASE_INSENSITIVE);
("[0-9]{}//w[a-bA-B]+ or [0-9]{}//w["+mySearchKeyWord+"]++",Pattern.CASE_INSENSITIVE);
("[^a-z\\s]*"+mySearchKeyWord+"?[^\\s]*",Pattern.CASE_INSENSITIVE);
("[^\\s]*"+mySearchKeyWord+"?[^\\s]",Pattern.CASE_INSENSITIVE);
("[^\\s]*"+mySearchKeyWord+"s?\\b",Pattern.CASE_INSENSITIVE);
("[^\\s]*\\W*"+mySearchKeyWord+"s?\\b",Pattern.CASE_INSENSITIVE);

最佳答案

\b 是单词边界,数字包含在可以组成单词的内容中,因此“1face”在正则表达式中被视为单词,这意味着\bface\b 不会匹配它。我不确定哪些特殊字符被视为 Java 中单词的一部分,因此这也可能是以它们开头的单词的问题。

关于java - java中的正则表达式没有产生期望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382209/

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