栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

正则表达式匹配字符串的可选结尾

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正则表达式匹配字符串的可选结尾

您可以将第一个

.+
懒惰的人变成懒惰的人,然后用一个非捕获的可选组来包裹后面的部分:

(.+?)(?:s((d+)))?$   ^ ^^^^^

参见正则表达式演示

实际上,如果将正则表达式与

String#matches()
最后一个一起使用
$
是多余的。

详细资料

  • (.+?)
    -组1捕获除换行符以外的一个或零个字符,并且尽可能少(因此,允许随后的子模式“落入”组)
  • (?:s((d+)))?
    -可选的空格序列
    (
    ,第2组捕获1个以上的数字和一个
    )
  • $
    -弦锚的末端。

一个Java的演示:

String[] lst = new String[] {"John Smith","John Smith (123)","John Smith (123) (456)"};Pattern p = Pattern.compile("(.+?)(?:\s\((\d+)\))?");for (String s: lst) {    Matcher m = p.matcher(s);    if (m.matches()) {        System.out.println(m.group(1));        if (m.group(2) != null) System.out.println(m.group(2));    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号