Regex 带点分隔符的简单正则表达式
我试图从两种格式中的一种中提取两个字符串,结果是两个组。格式如下:Regex 带点分隔符的简单正则表达式,regex,Regex,我试图从两种格式中的一种中提取两个字符串,结果是两个组。格式如下: val1.val2 - group1 should be "val1" and group2 should be "val2" val2 - group1 should be "" and group2 should be "val2" 我得出的最接近的结论是: ([^\.]*?)\.?(.+) 但是第一组上的lazy操作符基本上使第二组在其中有“.”时捕获整个字符串。我很确定这是可行的: (?:([^.]*)\.)?(.
val1.val2 - group1 should be "val1" and group2 should be "val2"
val2 - group1 should be "" and group2 should be "val2"
我得出的最接近的结论是:
([^\.]*?)\.?(.+)
但是第一组上的lazy操作符基本上使第二组在其中有“.”时捕获整个字符串。我很确定这是可行的:
(?:([^.]*)\.)?(.+)
它有:
- 可选的非捕获组,包含:
- 第1组:文字点之前的文本
- 文字点
- 第2组:任意数量的文本
感谢@Dandan的改进
(?:([^.]*)\)(.*)(.*)
Jerry的解决方案是正确的,只做了一点修改(?:([^.]*)\)(.+)