正则表达式:可选组
发布时间:2020-12-14 05:36:10 所属栏目:百科 来源:网络整理
导读:我想拆分这样的字符串: abc//def//ghi 在第一次出现//之前和之后的一部分: a: abcb: //def//ghi 我正在使用这个正则表达式: (?a.*?)(?b//.*) 到目前为止哪个工作正常. 但是,有时在源字符串中缺少//,显然正则表达式无法匹配.如何使第二组可选? 像abc这样
我想拆分这样的字符串:
abc//def//ghi 在第一次出现//之前和之后的一部分: a: abc b: //def//ghi 我正在使用这个正则表达式: (?<a>.*?)(?<b>//.*) 到目前为止哪个工作正常. 但是,有时在源字符串中缺少//,显然正则表达式无法匹配.如何使第二组可选? 像abc这样的输入应匹配到: a: abc b: (empty) 我试过(?< a>.*?)(?< b> //.*)?但是在Expresso中我留下了很多NULL结果,所以我猜这是错误的想法. 解决方法
在表达式的开头尝试^以匹配字符串的开头,并在结尾处使用$来匹配字符串的结尾(这将使ungreedy匹配工作).
^(?<a>.*?)(?<b>//.*)?$ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |