正则表达式获取两个单词之间的所有内容
Regex Get Everything Between 2 Words
我需要在文本中找到最后一个匹配词“Madhuparna”,并获取文本中左侧近匹配标记 html 到最后一个标记 html 之间的文本。
- 要查找的词:
Madhuparna
- 文本输入:
<p>The entire purpose speed up the process.</p><p>June 5, 2021 By Demo</p>\r\n<p>The entire purpose of a terminal emulator is to imitate how the regular computer terminals perform</p><p>Allowing the main computer to connect Madhuparna to and use a remote computer</p><li>bla bla bla bla bla bla</li>
- 我需要的结果:
<p>Allowing the main computer to connect Madhuparna to and use a remote computer</p><li>bla bla bla bla bla bla</li>
- 我现在要做但没用的:
/<(\S+)(>| .*?>)[^<>]*Madhuparna[^<>]*<\/>/g
您可以使用
(?s)<\w+(?:\s[^>]*)?>[^<>]*Madhuparna.*</\w+>
见regex demo。 详情:
(?s)
- 内联 singleline
标志
<
- <
字符
\w+
- 一个或多个单词字符
(?:\s[^>]*)?
- 可选出现一个空格,然后 >
以外的零个或多个字符
>
- 一个 >
字符
[^<>]*
- <
和 >
以外的零个或多个字符
Madhuparna
- 子串
.*
- 任意零个或多个字符,尽可能多
</\w+>
- </
字符串,任何一个或多个字符,>
.
我需要在文本中找到最后一个匹配词“Madhuparna”,并获取文本中左侧近匹配标记 html 到最后一个标记 html 之间的文本。
- 要查找的词:
Madhuparna
- 文本输入:
<p>The entire purpose speed up the process.</p><p>June 5, 2021 By Demo</p>\r\n<p>The entire purpose of a terminal emulator is to imitate how the regular computer terminals perform</p><p>Allowing the main computer to connect Madhuparna to and use a remote computer</p><li>bla bla bla bla bla bla</li>
- 我需要的结果:
<p>Allowing the main computer to connect Madhuparna to and use a remote computer</p><li>bla bla bla bla bla bla</li>
- 我现在要做但没用的:
/<(\S+)(>| .*?>)[^<>]*Madhuparna[^<>]*<\/>/g
您可以使用
(?s)<\w+(?:\s[^>]*)?>[^<>]*Madhuparna.*</\w+>
见regex demo。 详情:
(?s)
- 内联singleline
标志<
-<
字符\w+
- 一个或多个单词字符(?:\s[^>]*)?
- 可选出现一个空格,然后>
以外的零个或多个字符
>
- 一个>
字符[^<>]*
-<
和>
以外的零个或多个字符
Madhuparna
- 子串.*
- 任意零个或多个字符,尽可能多</\w+>
-</
字符串,任何一个或多个字符,>
.