gpt4 book ai didi

用于提取 Twitter 消息中提到的名称的 Java 正则表达式

转载 作者:行者123 更新时间:2023-11-30 10:28:34 26 4
gpt4 key购买 nike

我正在编写一个小程序,使用正则表达式提取 Tweeter 消息中提到的用户名。但是,部分程序在某些测试用例中失败了。基本上,下面指定的正则表达式模式能够匹配 text1 但不能匹配 text2。现在,当字符串中的第一个字符是“@”后跟 tweeter 中的有效用户名时,下面的正则表达式模式仅用于匹配特定的测试用例。我想我一定是误解了这个正则表达式并错误地使用了它。有人可以对此有所了解吗?

String validTweetPattern1 = "^[@]((?=.*[A-Za-z0-9])[\\w-_]+)";
String text1 = "@mention";
String text2 = "@mention @hello";

System.out.println(Pattern.matches(validTweetPattern1, text1));
System.out.println(Pattern.matches(validTweetPattern1, text2));

Console Output:
True
False

提前致谢。

最佳答案

在不知道你打算用正则表达式做什么的情况下,我可以建议你改变模式如下:

String validTweetPattern1 = "(?:^|.*\\s+)[@]((?=.*[A-Za-z0-9])[\\w-_]+).*";

这将 Twitter 主题标签标识为以 @ 符号开头的字符串,该符号位于字符串的最开头或字符串的中间(如果前面有空格)。您可以查看下面的演示,该正则表达式未捕获电子邮件地址。您当前的模式是在字符串的最开头搜索主题标签,并且也不允许在第一个标签之后出现一个空格,后跟另一个标签。

Demo

关于用于提取 Twitter 消息中提到的名称的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44519058/

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