我的正则表达式:https://regex101.com/r/wM0oy1/2/
/(((?!(([1-9]|0[1-9]|[12][0-9]|3[01])\.([1-9]|0[1-9]|1[012])\.(19|20)\d\d)))
(\+?[0-9][0-9()-s+\s]{5,20}[0-9]))/我只想让它匹配电话号码,但自动取款机我不让它工作,这是我认为可以工作,但我只得到一个匹配
测试22.13.2018 <--不想在日期匹配
测试09234343 <--想要匹配电话号码
测试0171 443 343 433 <--想要匹配电话号码
Test 0943 34445 <--想要匹配电话号码
测试+49(0)94234 3434 34 <--想要匹配电话号码
测试09743/1443 <--电话号码不匹配
测试02.12.2017 <--不想在日期匹配
测试2017 <--不想在日期匹配
我基本上想排除日期。
我希望这只匹配电话枚举号码,而不是日期
\+?[0-9][0-9()-s+\s]{5,20}[0-9]并将此模式作为异常接受
(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d发布于 2018-01-05 20:42:33
你可以在php中使用内置的checkdate函数来检查它是否是一个有效的日期。
发布于 2020-08-08 04:10:40
使用跳过-失败:
(?:0?[1-9]|[12][0-9]|3[01])\.(?:0?[1-9]|1[012])\.(?:19|20)\d\d(*SKIP)(*F)|\+?[0-9][0-9()-s+\s]{5,20}[0-9]请参阅proof
一旦匹配了(?:0?[1-9]|[12][0-9]|3[01])\.(?:0?[1-9]|1[012])\.(?:19|20)\d\d,跳过失败运算符将忽略匹配,并且\+?[0-9][0-9()-s+\s]{5,20}[0-9]将永远不会匹配日期子字符串。
https://stackoverflow.com/questions/48113828
复制相似问题