用于匹配大写字母和破折号后跟逗号的正则表达式
RegEx for matching uppercase and dash followed by a comma
正在尝试删除符合模式
的字符串
标签开头为
Size:
并且在下一个逗号 (,) 之前包含 -
字符。
示例:
Size: XS-S-M-L-XL-2XL,
或
Size: XS-S-M,
等
将被选中(包括 ,
)
但是 Size_S,
会被忽略,因为没有 -
我很接近:
Size:(.*)-*(.?),
但仍未止步于 ,
这是 1 行标签:
Athletics, Fitted, Mesh, Feature_Moisture Wicking, Material_Polyester 100%, , Material_Polyester 100%, Material_Polyester Over 50%, School, Style_Short Sleeves, Size_2XL, Size_L, Size_M, Size_S, Size_XL, Size_XS, Size: XS-S-M-L-XL-2XL, Uniforms, Unisex, V-Neck, VisibleLogos, Youth
要从我的单元格中删除所有尺码 'range' 标签,只保留单一尺码标签。
解决方案可以在这里找到:regex101.com/r/VuTzba/1
我们可能想在此处的表达式中添加更多边界。让我们从类似以下内容开始:
Size:\s+([A-Z0-9-]+),
捕获组 ()
收集我们所需数据的位置。
正则表达式
如果不需要此表达式,可以在 regex101.com 中对其进行修改或更改。
正则表达式电路
jex.im 也有助于形象化表达。
在您的模式 Size:(.*)-*(.?),
中,您首先使用 (.*)
匹配直到字符串的末尾。
之后连字符 -*
和组 (.?)
中的单个字符是可选的,因此它将回溯到最后一个逗号,因为这是唯一必须匹配的字符。
要获得更精确的匹配,您可以使用重复模式来匹配尺寸:
Size: (?:\d*X[SL]|L|M|S)(?:-(?:\d*X[LS]|L|M|S))*,
说明
Size:
匹配大小后跟 space
(?:
非捕获组
\d*X[SL]|L|M|S
匹配交替中列出的项目之一
)
关闭群组
(?:
非捕获组
-(?:\d*X[LS]|L|M|S)
匹配连字符后跟任何列出的项目
)*,
关闭组并重复 0+ 次并匹配一个逗号
因为更广泛的模式可以使用字符 class 并列出所有允许的字符 Size: [XSML\d]+(?:-[XSML\d]+)*,
或匹配直到第一个逗号 Size:[^,]+,
编辑
也匹配 Size: 28W-30W-32W-34W-36W-38W-40W, Size: 28W-30W-32W-34W
或者您可以使用扩展字符 class 添加 |\d+W
并结束匹配逗号或断言字符串结尾的模式 $
Size: (?:\d*X[SL]|L|M|S|\d+W)(?:-(?:\d*X[LS]|L|M|S|\d+W))*(?:,|$)
Size:\s*(.*?),
将抓取冒号之后和下一个逗号之前的所有内容,跳过前导白色 space.
正在尝试删除符合模式
的字符串标签开头为
Size:
并且在下一个逗号 (,) 之前包含 -
字符。
示例:
Size: XS-S-M-L-XL-2XL,
或
Size: XS-S-M,
等
将被选中(包括 ,
)
但是 Size_S,
会被忽略,因为没有 -
我很接近:
Size:(.*)-*(.?),
但仍未止步于 ,
这是 1 行标签:
Athletics, Fitted, Mesh, Feature_Moisture Wicking, Material_Polyester 100%, , Material_Polyester 100%, Material_Polyester Over 50%, School, Style_Short Sleeves, Size_2XL, Size_L, Size_M, Size_S, Size_XL, Size_XS, Size: XS-S-M-L-XL-2XL, Uniforms, Unisex, V-Neck, VisibleLogos, Youth
要从我的单元格中删除所有尺码 'range' 标签,只保留单一尺码标签。
解决方案可以在这里找到:regex101.com/r/VuTzba/1
我们可能想在此处的表达式中添加更多边界。让我们从类似以下内容开始:
Size:\s+([A-Z0-9-]+),
捕获组 ()
收集我们所需数据的位置。
正则表达式
如果不需要此表达式,可以在 regex101.com 中对其进行修改或更改。
正则表达式电路
jex.im 也有助于形象化表达。
在您的模式 Size:(.*)-*(.?),
中,您首先使用 (.*)
匹配直到字符串的末尾。
之后连字符 -*
和组 (.?)
中的单个字符是可选的,因此它将回溯到最后一个逗号,因为这是唯一必须匹配的字符。
要获得更精确的匹配,您可以使用重复模式来匹配尺寸:
Size: (?:\d*X[SL]|L|M|S)(?:-(?:\d*X[LS]|L|M|S))*,
说明
Size:
匹配大小后跟 space(?:
非捕获组\d*X[SL]|L|M|S
匹配交替中列出的项目之一
)
关闭群组(?:
非捕获组-(?:\d*X[LS]|L|M|S)
匹配连字符后跟任何列出的项目
)*,
关闭组并重复 0+ 次并匹配一个逗号
因为更广泛的模式可以使用字符 class 并列出所有允许的字符 Size: [XSML\d]+(?:-[XSML\d]+)*,
或匹配直到第一个逗号 Size:[^,]+,
编辑
也匹配 Size: 28W-30W-32W-34W-36W-38W-40W, Size: 28W-30W-32W-34W
或者您可以使用扩展字符 class 添加 |\d+W
并结束匹配逗号或断言字符串结尾的模式 $
Size: (?:\d*X[SL]|L|M|S|\d+W)(?:-(?:\d*X[LS]|L|M|S|\d+W))*(?:,|$)
Size:\s*(.*?),
将抓取冒号之后和下一个逗号之前的所有内容,跳过前导白色 space.