REGEX:如果字符串在两个特殊字符之间,并且字符串包含特定的子字符串,则删除字符串

rur96b6h  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

我试图找到一个正则表达式,可以让我同时执行两个匹配两个条件。如果字符串至少包含以下子字符串中的一个,则我希望删除包含在两个特殊字符之间的任何字符串:“.jpeg”“.png”。
例如,给定以下文本:
I like ice-cream very much! Oh me too! !be148b3b3992a514839e5d9a3c9b80bf--lego-stormtrooper-stormtroopers (1) (1).jpeg|width=474,height=273!
预期结果应该是:I like ice-cream very much! Oh me too!
我发现这个正则表达式!.*?!可以删除!之间的任何内容,但这也会删除文本Oh me too
任何帮助是非常感谢!:)

lskq00tm

lskq00tm1#

您可以使用

![^!]*\.(?:jpeg|png)[^!]*!

请参见this regex demo。它匹配

  • !-一个!字符
  • [^!]*-!以外的零个或多个字符
  • \.- a .字符
  • (?:jpeg|png)-jpegpng
  • [^!]*-!以外的零个或多个字符
  • !- a !字符
!(?!\s)[^!]*\.(?:jpeg|png)[^!]*!

参见this regex demo。* 详情 *:

  • !- a !字符
  • (?!\s)-在第一个!之后不应该有空白
  • [^!]*-!以外的零个或多个字符
  • \.- a .字符
  • (?:jpeg|png)-jpegpng
  • [^!]*-!以外的零个或多个字符
  • !- a !字符
    注意:若要匹配jpg,请在您选择的模式中将jpeg替换为jpe?g

相关问题