正则表达式匹配含可变次数分隔符的字符串问题求助
解决方案
针对你的需求,可以利用目标内容的固定结构编写正则,直接提取三个分组,无需统计分隔符次数。
正则表达式
^GROUP:\s*([A-Z/]+ - [A-Z] \d+ Inch(?:_\d+)?)\s*-?\s*([A-Z/]+ - [A-Z] \d+ Inch(?:_\d+)?)\s+(\d+) Images$
正则解释
^GROUP:\s*:匹配字符串开头的GROUP:及后续任意空白字符([A-Z/]+ - [A-Z] \d+ Inch(?:_\d+)?):捕获第一个目标内容,匹配规则为:[A-Z/]+:匹配由大写字母和斜杠组成的代码段(如AIT/CAL/DSN/GR/HDIL/SDL)- [A-Z] \d+ Inch:匹配内容中的固定格式(如- U 1 Inch)(?:_\d+)?:可选匹配带下划线的后缀(如_1),(?:...)表示非捕获分组
\s*-?\s*:匹配两个内容之间的分隔符,兼容前后的任意空白及可能的分隔符格式- 第二个捕获分组与第一个结构完全一致,用于提取第二个目标内容
\s+(\d+) Images$:匹配末尾的图片数量,捕获数字作为第三个分组
测试效果
以你提供的示例字符串为例:
GROUP: AIT/CAL/DSN/GR/HDIL/SDL - U 1 Inch - AIT/CAL/DSN/GR/HDIL/SDL - U 1 Inch 0 Images
提取结果:
- Group 1:
AIT/CAL/DSN/GR/HDIL/SDL - U 1 Inch - Group 2:
AIT/CAL/DSN/GR/HDIL/SDL - U 1 Inch - Group 3:
0
所有示例字符串均可正确匹配提取,无需依赖多空格分隔符。
内容的提问来源于stack exchange,提问作者juanschwartz
相关产品推荐
相关产品推荐

