REGEX:仅从包含特定单词的文件中,选择特定单词之间的文本

REGEX:仅从包含特定单词的文件中,选择特定单词之间的文本

祝您有个愉快的一天。我必须在几个 html 文件中的单词start和之间选择一些文本finnish。但是,只有当文件包含单词 BABY SIN 时,我才需要选择该特定文本

例如:

Lorem ipsum,有时也被称为 lipsum,是用于排版 BABY SIN 标记的印刷品、图形或网页设计的虚拟文本。这段文字被认为是 15 世纪一位不知名的排字员所写,据信他曾将西塞罗的《善恶的终结》的部分内容打乱,用于芬兰字体样本书。

我制作了一个正则表达式,但有些地方不太好。

(?s)(.*\b(BABY SIN)\b.*)\K(?s)(START).*(FINNISH)

谁能帮我?

答案1

这会找到句子,BABY SIN即使


  • Ctrl+F
  • 找什么:(?=.*\bBABY SIN\b).*?\KSTART.*FINNISH
  • 查看 环绕
  • 查看 正则表达式
  • 查看 . matches newline
  • Replace all

解释:

(?=.*\bBABY SIN\b)  # positive lookahead, make sure we have "BABY SIN" somewhere in the file
.*?                 # 0 or more any character, not greedy
\K                  # forget all we have seen until this position
START               # literally
.*                  # 0 or more any character
FINNISH             # literally

截屏:

在此处输入图片描述

答案2

我稍微修改了你的正则表达式。请尝试以下操作:(?s)(.*\b(BABY SIN)\b.*)\K(?s)(?<=START).*(?=FINNISH)

在此处输入图片描述

相关内容