当前位置: 首页 > 知识库问答 >
问题:

Java解析tweet中的提及[重复]

乌靖
2023-03-14

我试图使用regex解析特定tweet中提到的用户名,但它总是返回找不到匹配的IllegalStateException,但我知道regex很好,因为它适用于其他人http://shahmirj.com/blog/extracting-twitter-usertags-using-regex在这个站点上找到了它。

    String input = "@rivest talk in 30 minutes #hype";
    String regex = "(?<=^|(?<=[^a-zA-Z0-9-_\\\\.]))@([A-Za-z]+[A-Za-z0-9_]+)";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(input);
    System.out.println(matcher.group(0));

共有1个答案

元胡媚
2023-03-14

您忘记调用find(),这是匹配方法之一,如Javadoc中所述。

String input = "@rivest talk in 30 minutes #hype";
String regex = "(?<=^|(?<=[^a-zA-Z0-9-_\\\\.]))@([A-Za-z][A-Za-z0-9_]+)";
Matcher matcher = Pattern.compile(regex).matcher(input);
if (matcher.find()) {
    System.out.println(matcher.group(0));
}

我还对regex做了一个小调整,因为[A-Za-z]后面的+似乎毫无意义。

 类似资料:
  • 问题内容: 这是我对Java中的重载解析的了解: 编译器尝试从给定的重载方法定义中解析方法调用的过程称为重载解析。如果编译器找不到确切的匹配项,则仅通过使用向上转换来查找最接近的匹配(永远不会进行向下转换)。 这是一堂课: 如预期的那样,输出为10。 但是,如果我稍微更改类定义并更改第二个重载方法。 输出为8。 在这里我很困惑。如果从不使用向下转换,那么为什么只打印8个?为何编译器会选择以参数为参

  • 本文向大家介绍java 中modCount 详解及源码分析,包括了java 中modCount 详解及源码分析的使用技巧和注意事项,需要的朋友参考一下 modCount到底是干什么的呢 在ArrayList,LinkedList,HashMap等等的内部实现增,删,改中我们总能看到modCount的身影,modCount字面意思就是修改次数,但为什么要记录modCount的修改次数呢? 大家发现一

  • 本文向大家介绍java和 javaw 及 javaws的区别解析,包括了java和 javaw 及 javaws的区别解析的使用技巧和注意事项,需要的朋友参考一下 java  ,javaw   和  javaws 的区别: 首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到。通常 我们执行一些小的

  • 本文向大家介绍Java中io流解析及代码实例,包括了Java中io流解析及代码实例的使用技巧和注意事项,需要的朋友参考一下 IO流 Java中IO流分为两种,字节流和字符流,顾名思义字节流就是按照字节来读取和写入的,字符刘是按照字符来存取的;常用的文件读取用的就是字符流,在网络通信里面用的就是字节流 下面这张图是Java中IO流的总体框架: 字节流 Java中字节流一般都是以stream结尾的,输

  • 我有一个非常复杂的字符串,如下所示, 这里所有的JSON数据都在括号“[]”中,括号之间用“{…}”分隔支撑。在这里,我想要一个从所有花括号的消息,故事和属性。尝试了两件事一是二把所有的东西都放在一个JSON对象中,也尝试了一次无用的尝试来匹配regex“message:”但即使这样也没用。 从所有大括号中查找消息、故事和属性的方法是什么。

  • put twitter on your website with tweet!, an unobtrusive javascript plugin for jquery.