我试图从两种格式中的一种中提取两个字符串,结果是两个组。格式为:
val1.val2 - group1 should be "val1" and group2 should be "val2"
val2 - group1 should be "" and group2 should be "val2"
我最想出的是:
([^\.]*?)\.?(.+)
但是第一组的懒惰运算符基本上使得第二组在有“。”时捕获整个字符串。在它。
答案 0 :(得分:1)
我很确定这有效:
(?:([^.]*)\.)?(.+)
它有:
如果缺少点,则不存在可选的非捕获组(并且组合1也不存在),因此所有文本都将进入组2.如果该点存在则则组1和组2是两者都填满了。
感谢@Dandan的改进