gpt4 book ai didi

java - 这个正则表达式有什么问题?

转载 作者:行者123 更新时间:2023-11-29 08:16:00 25 4
gpt4 key购买 nike

我需要在 Android 应用程序中匹配 Twitter-Hashtags,但我的代码似乎没有执行预期的操作。我想到的是:

ArrayList<String> tags = new ArrayList<String>(0);
Pattern p = Pattern.compile("\b#[a-z]+", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(tweet); // tweet contains the tweet as a String
while(m.find()){
tags.add(m.group());
}

变量 tweet 包含包含主题标签的常规推文 - 但 find() 不会触发。所以我猜我的正则表达式是错误的。

最佳答案

您的正则表达式因 \b 字边界 anchor 而失败。此 anchor 仅匹配非单词字符和单词字符(字母数字字符)。因此,将它直接放在 # 前面会导致正则表达式失败,除非在 # 之前有字母数字字符 !您的正则表达式会匹配 foobarfoo#hashtag blahblahblah 中的主题标签,但不会匹配 foobarfoo #hashtag blahblahblah 中的主题标签。

改用#\w+,记住,在字符串中,你需要双反斜杠:

Pattern p = Pattern.compile("#\\w+");

关于java - 这个正则表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4844426/

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