我需要帮助检查我的正则表达式。
背景:
我有一个脚本,它采用 Excel 文件作为输入来在数据库中导入产品,有一个特殊字段为产品采用“额外键”,产品可以有 3 个额外键,并且它们必须用逗号分隔。
所以我为检查“额外键”字段而制作的正则表达式是
/^((?!0+,?$)(?! +,?$)[A-Z0-9 ]{1,20},?){0,3}$/
所以我稍后可以在服务器中用“,”(逗号)将其拆分,正则表达式中接受空格,因为我打算在拆分之前用空字符串替换所有空格
我的问题是,这个正则表达式可以吗?
我使用过正则表达式,但这是我第一次使用负向先行表达式。
如果不正确,你能帮我获得正确的正则表达式吗?
谢谢!
“...我的问题是,这个正则表达式可以吗?
我使用过正则表达式,但这是我第一次使用负向先行表达式。
如果不正确,你能帮我获得正确的正则表达式吗? ...”
它工作正常,环视是正确的。
这是一个类似的模式。
(?!(?:0+| +)$)[A-Z\d ]{1,20}(?:,(?!(?:0+| +)$)[A-Z\d ]{1,20}){2}
如果您使用PCRE正则表达式引擎,您可以通过引用捕获组来简化模式。
((?!(?:0+| +)$)[A-Z\d ]{1,20})(?:,\g<1>){2}