我的正则表达式有问题。我的目标是检测布料尺寸并削减其他数据。
以下是一些尺寸示例:
2XS
M
XXL Long
XL Short
这是我的正则表达式
^(\d*[SMLX]+)\s*.*#
此正则表达式适用于大多数情况,但如果我的大小包含的字符超出允许范围,则它会出错。
对于XXL
Long或2XL
,它返回正确的数据(XXL
和2XL
),但是如果我的尺寸看起来像2AXL
,则返回{{ 1}},但是在这种情况下,它必须返回空结果,因为“ A”字符超出了允许的字符范围。
答案 0 :(得分:0)
正则表达式[SMLX]
匹配S
,M
,L
或 X
。
您描述的内容可以通过the following regex来实现:
^(\d*(?:M|X{0,2}[SL]))(?:$|\s+.*$)
匹配纯文本M
或可选X
,后跟<S
或L
>。
我还修改了正则表达式的后缀,以匹配大小后没有后缀的字符串,并防止\s
匹配换行符-导致匹配多行字符串。