我刚刚在regex101上测试了一个正则表达式并得到了一些意想不到的结果。我试过的表达是
^[^-]*(?:-[^-]*){1}\Kt
在这个字符串上
this is a test - try to split -this- string - into its substrings
regex101上的匹配结果是" t"在单词“#34; split"
的结尾处这是一个测试 - 尝试将 t -this- string - 放入其子串中
为什么它没有返回第一个" t"在单词"尝试"?
这是一个测试 - t ry将-this- string - 拆分为其子串
答案 0 :(得分:1)
这里有几点需要注意:
[^-]
匹配t
,*
贪婪量词与其找到的最后t
匹配t
添加到否定字符类,以匹配第一个t, or make
lazy with
?{1}
限制量词是多余的,因为每个模式原子默认匹配一次使用
^[^-]*-[^-]*?\Kt
或
^[^-]*-[^-t]*\Kt