regex 如何使用正则表达式检查字母数字逗号分隔值?

bq3bfh9z  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(110)

我需要帮助来为以下字符串编写正则表达式:
1.输入的范围必须用逗号+空格分隔
1.可以接受字母数字字符。
1.接受-介于两者之间但不能以-或结尾,
以下是有效字符串:

  1. ABC001, 11236, IU765, OI001-OI007, PO98, 98700
  2. VA009, VA778
  3. YU987
  4. 889022
    以下是无效字符串:
  5. ,,,&*(&
  6. AB998,,,, AB998
  7. AB005-AB002,-
xpcnnkqh

xpcnnkqh1#

请尝试以下正则表达式

^[A-Z0-9]+((,\s|-)[A-Z0-9]+)*[A-Z0-9]+$

这将检查以下内容:

  • 以字母或数字开头
  • 检查,-是否超过1个模式
  • 以字母或数字结尾

您可以在Regexr.com上在线试用

drnojrws

drnojrws2#

遵循规则的正则表达式是^[a-zA-Z0-9-]*[a-zA-Z0-9]+(?:, [a-zA-Z0-9-]*[a-zA-Z0-9]+)*$
该规则的意思是:

  • ^开始
  • 一个或多个有效字符(尽管不以破折号结尾)[a-zA-Z0-9-]*[a-zA-Z0-9]+
  • 然后是任意数量的
  • 逗号空间
  • 后跟一个或多个有效字符
  • --> (?:, [a-zA-Z0-9-]*[a-zA-Z0-9]+)*
  • 最后是$
    已编辑,适用于规则“”或“破折号”

sg2wtvxw

sg2wtvxw3#

^[a-zA-Z0-9_]*[a-zA-Z0-9]+( *, *[a-zA-Z0-9_]*[a-zA-Z0-9]+)*$

允许您在,之前和之后有许多空格

相关问题