正则表达式格式 "YYYY/NNNN" 或 "YYYY/NNNN/Country code"
Regexp format "YYYY/NNNN" or "YYYY/NNNN/Country code"
我有这个正则表达式:(\d{4})\/(\d{2,4})\/?(\w{2})?
,它似乎可以正常工作,但我想避免以下情况,例如:我有一个字符串“2020/2000/WEEEE”并且它匹配它。
它匹配的其他错误示例:“IEN/BSK-2020/143999”.
如何避免这种情况,只从上面获取指定格式的字符串? “YYYY/NNNN”和“YYYY/NNNN/国家代码”
您可以将第一部分与数字和正斜杠匹配,并使整个最后部分包括 /
可选,使用 (?!\S)
[=16= 在右侧断言空白边界]
\b(\d{4})\/(\d{2,4})(?:\/(\w{2}))?(?!\S)
更精确一点的模式,其中国家代码只能是字符 a-z,并且不转义正斜杠(当它不是定界符时)。如果您不需要将 3 个捕获组作为单独的值进行处理,则可以省略它们。
\b(\d{4})/(\d{2,4})(?:/([a-zA-Z]{2}))?(?!\S)
我有这个正则表达式:(\d{4})\/(\d{2,4})\/?(\w{2})?
,它似乎可以正常工作,但我想避免以下情况,例如:我有一个字符串“2020/2000/WEEEE”并且它匹配它。
它匹配的其他错误示例:“IEN/BSK-2020/143999”.
如何避免这种情况,只从上面获取指定格式的字符串? “YYYY/NNNN”和“YYYY/NNNN/国家代码”
您可以将第一部分与数字和正斜杠匹配,并使整个最后部分包括 /
可选,使用 (?!\S)
[=16= 在右侧断言空白边界]
\b(\d{4})\/(\d{2,4})(?:\/(\w{2}))?(?!\S)
更精确一点的模式,其中国家代码只能是字符 a-z,并且不转义正斜杠(当它不是定界符时)。如果您不需要将 3 个捕获组作为单独的值进行处理,则可以省略它们。
\b(\d{4})/(\d{2,4})(?:/([a-zA-Z]{2}))?(?!\S)