正则表达式允许逗号分隔的代码列表
Regex to allow a comma seperated list of codes
我有一个需要验证的输入表单,列表必须遵循这些规则
- 逗号分隔
- 每个代码都可以
- 以单个字母开头,仅后跟一个下划线,后跟任意数量的字母或
- 一组数字
- 列表不得以逗号结尾
有效的示例数据
- A_AAAAA,B_BBBBB,122334,D_DFDFDF
- 12345,123567,123456,A_BBBBB,C_DDDDD,1234567
示例数据无效
- RR_RRR,12345
- 1_111,AVSFFF,
- A_SDDF,123342
我正在使用 http://www.regexr.com,目前为止:[A-Z_]_[A-Z],|[0-9],
问题是每个有效数据示例中的最后一个代码未被选中,因此该行未通过正则表达式模式
试试这个 -
^(?:[A-Z]_[A-Z]*|[0-9]+)(?:,(?:[A-Z]_[A-Z]*|[0-9]+))*$
试试这个:
^(?:(?:[A-Za-z]_[A-Za-z]*|\d+)(?:,|$))+(?<!,)$
解释:
^ start of string
(?: this group matches a single element in the list:
(?:
[A-Za-z] a character
_ underscore
[A-Za-z]* any number of characters (including 0)
| or
\d+ digits
)
(?: followed by either a comma
,
| or the end of the string
$
)
)+ match any number of list elements
(?<! make sure there's no trailing comma
,
)
$ end of string
我有一个需要验证的输入表单,列表必须遵循这些规则
- 逗号分隔
- 每个代码都可以
- 以单个字母开头,仅后跟一个下划线,后跟任意数量的字母或
- 一组数字
- 列表不得以逗号结尾
有效的示例数据
- A_AAAAA,B_BBBBB,122334,D_DFDFDF
- 12345,123567,123456,A_BBBBB,C_DDDDD,1234567
示例数据无效
- RR_RRR,12345
- 1_111,AVSFFF,
- A_SDDF,123342
我正在使用 http://www.regexr.com,目前为止:[A-Z_]_[A-Z],|[0-9],
问题是每个有效数据示例中的最后一个代码未被选中,因此该行未通过正则表达式模式
试试这个 -
^(?:[A-Z]_[A-Z]*|[0-9]+)(?:,(?:[A-Z]_[A-Z]*|[0-9]+))*$
试试这个:
^(?:(?:[A-Za-z]_[A-Za-z]*|\d+)(?:,|$))+(?<!,)$
解释:
^ start of string
(?: this group matches a single element in the list:
(?:
[A-Za-z] a character
_ underscore
[A-Za-z]* any number of characters (including 0)
| or
\d+ digits
)
(?: followed by either a comma
,
| or the end of the string
$
)
)+ match any number of list elements
(?<! make sure there's no trailing comma
,
)
$ end of string