Regex 从正则表达式中删除不需要的匹配项
我有一个字符串列表,如:Regex 从正则表达式中删除不需要的匹配项,regex,regex-lookarounds,Regex,Regex Lookarounds,我有一个字符串列表,如: 缺少图像09 缺失图像08;P012V004-0061-01再次裁剪 P012CR0409F1-1-04、P012CR0409F1-1-05再次收割 P012CR0602F1-2-01再次裁剪 现在,我用于隔离需要裁剪的图像代码的正则表达式如下所示 ([\w\d-]+)(?=.+再次裁剪),它可以工作,但在混合情况下返回“Missing”、“image”和“08”。我怎样才能从结果中排除这一点?我又在猜“向前看/向后看”了,但没法使它起作用。一个额外的好处是返回另一
- 缺少图像09
- 缺失图像08;P012V004-0061-01再次裁剪
- P012CR0409F1-1-04、P012CR0409F1-1-05再次收割
- P012CR0602F1-2-01再次裁剪
([\w\d-]+)(?=.+再次裁剪)
,它可以工作,但在混合情况下返回“Missing”、“image”和“08”。我怎样才能从结果中排除这一点?我又在猜“向前看/向后看”了,但没法使它起作用。一个额外的好处是返回另一组中丢失的图像,因为我也需要它们
非常感谢,您可以使用
[\w-]+(?=(?:\s*,\s*[\w-]+)*\s+crop again)
见
这里,
-匹配一个或多个字母、数字、下划线或连字符[\w-]+
-后跟(?=(?:\s*,\s*[\w-]+)*\s+再次裁剪)
-0次或更多次重复逗号,用空格括起来,然后是1+个单词/(?:\s*,\s*[\w-]+)*
字符-
-1+空格,然后\s+
-文字子字符串再次裁剪
- P012V004-0061-01
- P012CR0409F1-1-04
- P012CR0409F1-1-05
- P012CR0602F1-2-01
[a-zA-Z0-9]+-[0-9]+-[0-9]+
不确定你的“奖金”部分,你是什么意思<代码>(
P012CR0409F1-1-04
应该包括在内吗?@JvdV是,很抱歉没有包括在内clear@WiktorStribiżew是的,但有时我有多个数字。我最终使用了(?!缺少图像?)(\d{2})
true,但我宁愿采用专门查找“再次裁剪”字符串的解决方案,以便在数据不一致的情况下更可靠。谢谢!