你的任务是匹配模式abc.def.ghi.jkl,其中每个变量a,b,c,d,e,f,g,h,i,j,k,l可以是任何单个字符,除了新线。
对于上述问题,我将输入与正则表达式匹配:
"([^\\n]{3}(.)){3}([^\\n]{3})"
// this is the regex pattern i am using currently
我做错了什么,请帮我纠正上面的正则表达式,使它与我在标题中提供的输入不匹配。目前它以某种方式匹配它。虽然我提供了3但它显然与更多匹配超过3个字符。
答案 0 :(得分:3)
.
在正则表达式模式中具有特殊含义。
如果你想获得一个“简单点”,你需要引用/转义它(如"\\."
)。
并且这个特殊含义是(在正常配置下)“除了换行符之外的任何字符”,它与您的其他条件完全匹配,因此您可以将其简化为
"(...)\\.(...)\\.(...)\\.(...)"