java - 在java中管理正则表达式

标签 java regex

我们如何在java中管理正则表达式?

是的,我确实搜索了正则表达式主题,但我认为这在 java 中很奇怪。

我想做的是

My team <xxx-yyyy@uuuu.com> 

使用正则表达式,我想获取 < > 之间的字符串为 xxx-yyyy@uuuu.com

Pattern p = Pattern.compile("(.+?)\\<.*?\\>?");

上面的方法不起作用。

最佳答案

实际上,您需要在 Matcher 对象上调用 find() 方法才能遍历字符串。正如 Petri Pellinen 所说,您应该检查正确的分组。

尝试以下代码:

String str = "My team <xxx-yyyy@uuuu.com>  My team <xxx-yyyy@uuuu.com> \n " +
    "My team <xxx-yyyy@uucom> My team <xxx-yyyy@uuuu.com> " +
    "My team <xxx-yyyy@uuuu.com> My team <xxx-yyyy@uuuu.com>";

Pattern p = Pattern.compile("\\<(.*?)\\>");
Matcher m = p.matcher(str);

while(m.find()){
   System.out.println(m.group(1));  
}

并检查提取的组。

结果是:

xxx-yyyy@uuuu.com
xxx-yyyy@uuuu.com
xxx-yyyy@uucom
xxx-yyyy@uuuu.com
xxx-yyyy@uuuu.com
xxx-yyyy@uuuu.com

干杯!

关于java - 在java中管理正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5558499/

相关文章:

java - 我想让一个文本字段限制 3 个数字

java - 正则表达式中的 Unicode 脚本

java - 我可以在一行中转换和使用一个对象吗?

java - Apache Mina 执行器过滤器

java - 尝试使用 Rally Java 工具包更新用户故事时出现 "Could not update: Could not write changes in Unit Of Work"错误

c# - 当我期待 3 时只得到一场比赛

java - 如何在 OS X 上的 JavaFX 中显示表情符号?

java - 在 Java 中使用多个命名空间验证 XML

regex - golang 删除数组的一个维度

regex - 正则表达式的所有匹配的索引