正则表达式:从特定元标记中匹配并删除特定单词或符号(如“|”)

正则表达式:从特定元标记中匹配并删除特定单词或符号(如“|”)

我有两种情况。

首先,我必须|从特定的元标记中删除操作符:

<meta name="keywords" content="Enough place to shelter | Love Is everywhere"/>

制作了一个正则表达式,不太好..

寻找:(?:<meta name="keywords" content="|)\w+\K\h+\||(?=.*?/>)

替换为:\1\2

第二种情况是,我必须从特定的元标记中删除特定的单词,例如:

<meta name="keywords" content="I have to but something WORD_TO_DELETE from here | Love me"/>

我也对第一个正则表达式进行了一些更新,但不是太好。

寻找:(?:<meta name="keywords" content="|)\w+\K(WORD_TO_DELETE)(?=.*?/>)

替换为:\1\2

答案1

对于第一个问题(对于第二个问题,请提出新问题):

  • Ctrl+H
  • 找什么:(?:<meta name="keywords" content="|\G)[^|"]*\K\|\h*
  • 用。。。来代替:LEAVE EMPTY
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

(?:                                 #  non capture group
    <meta name="keywords" content="     # literally
  |                                   # OR
    \G                                  # restart from last match position
)                                   # end group
[^|"]*                              # 0 or more any character that is not pipe or double quote
\K                                  # forget all we have seen until this position
\|                                  # a pipe
\h*                                 # 0 or more horizontal space

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

相关内容