通用布料尺寸(S,M,L)正则表达式有问题

时间:2019-07-07 11:15:22

标签: regex

我的正则表达式有问题。我的目标是检测布料尺寸并削减其他数据。

以下是一些尺寸示例:

2XS
M
XXL Long
XL Short

这是我的正则表达式

^(\d*[SMLX]+)\s*.*#

此正则表达式适用于大多数情况,但如果我的大小包含的字符超出允许范围,则它会出错。

对于XXL Long或2XL,它返回正确的数据(XXL2XL),但是如果我的尺寸看起来像2AXL,则返回{{ 1}},但是在这种情况下,它必须返回空结果,因为“ A”字符超出了允许的字符范围。

1 个答案:

答案 0 :(得分:0)

正则表达式[SMLX]匹配SML X

您描述的内容可以通过the following regex来实现:

^(\d*(?:M|X{0,2}[SL]))(?:$|\s+.*$)

匹配纯文本M或可选X,后跟<SL>。

我还修改了正则表达式的后缀,以匹配大小后没有后缀的字符串,并防止\s匹配换行符-导致匹配多行字符串。