REGEX 查找两个字符串之间的字符串

REGEX 查找两个字符串之间的字符串

在下面的例子中,我想使用正则表达式来查找<sony>其他两行之间的 html 标签。

         <table width="697" border="0">
      <tr>
        <td><h1 class="den_articol" itemprop="name">Your Mirror</h1></td>
      </tr>
        </table>
<sony>
<p class="text_obisnuit"><span class="text_obisnuit2">* Not&#259;:</span> <a href="https://www.youtube.com/watch?v=IB4P5t3JGlg" target="_new">Simply Red - Your Mirror</a></p>

输出:

<sony>

我的正则表达式公式不起作用:

</table>\s+\n(.*?)<p class="text_obisnuit">

答案1

对于后面没有可变数量空格的情况<table>,我可以给出一个解决方案,因为我使用不支持这种情况的后视方法来进行不捕获的测试。

我的正则表达式:

(?<=<\/table>\n)(.*?)\n(?=<p class="text_obisnuit">)

您可能会看到它的实际效果regex101.com

不要忘记在 Notepad++ 中选中“.匹配换行符”选项。

一些解释:

环视四周 姓名 它能做什么
(?=foo) 展望 断言字符串中紧跟当前位置的是 foo
(?<=foo) 向后看 断言字符串中当前位置之前的元素是 foo

在此处输入图片描述

答案2

  • Ctrl+H
  • 找什么:\A[\s\S]+</table>\s+(\S+)\s+<p class="text_obisnuit">[\s\S]+\z
  • 用。。。来代替:$1
  • 打钩 环绕
  • 选择 正则表达式
  • Replace all

解释:

\A                          # beginning of file
[\s\S]+                     # 1 or more any character
</table>                    # literally
\s+                         # 1 or more any spaces
(\S+)                       # group 1, 1 or more any character that is not a space
\s+                         # 1 or more any spaces
<p class="text_obisnuit">   # literally
[\s\S]+                     # 1 or more any character
\z                          # end of file

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案3

另一个解决方案:

寻找: (?s)(?-i:<!-- ARTICOL START -->|(?!\A)\G).*?\K(?<=</table>\s)(.*?)(?=\s<p class="text_obisnuit">)(?!<!-- ARTICOL FINAL -->)

下次使用这个通用公式:

(?s)(?-i:BSR|(?!\A)\G).*?\K(?<=FR1)(.*?)(?=FR2)(?!ESR)

BSR = <!-- ARTICOL START -->

FR1 = </table>\s

FR2 = \s<p class="text_obisnuit">

ESR = <!-- ARTICOL FINAL -->

让 BSR(开始搜索区域正则表达式)成为定义必须开始搜索 FR 的区域的开头的正则表达式

让 ESR(结束搜索区域正则表达式)成为隐式定义 FR 搜索必须结束的区域的正则表达式

让 FR(查找正则表达式)成为定义要搜索的字符、字符串或表达式的正则表达式

让 RR(替换正则表达式)成为定义必须替换 FR 表达式的字符、字符串或表达式的正则表达式。REPLACE RR(表示可以是 \1 \2 ...或 $1 $2 或其他

答案4

我找到了一个解决方案:

寻找: </table>\r\n\K<.*?>|(?s)\R\R(?=<p class="text_obisnuit">)

相关内容