Regex选择两个字符串之间的所有字符串,但不选择其中一个字符串

Regex select everything between two strings, but not one of the strings

本文关键字:字符串 选择 一个 两个 之间 Regex      更新时间:2023-09-26

我有一些html代码,需要正则表达式并删除其中的一部分。

在这个特定的示例中,我需要删除2-columns.。完整字符串为name="2-columns.Heading-1",但需要读取name="Heading-1"

我希望这是可扩展的,因为另一个例子可能是name="3-columns.Heading-1"。所以我想删除name="开始点和.结束点之后的所有内容(我也想删除.

有人能帮我形成正确的正则表达式吗?我在挣扎。

[^"]*'.

试试这个。替换为empty string。请参阅演示。

http://regex101.com/r/dZ1vT6/24

单向;

str = str.replace(/(^name='")(.*'.)/, "$1");

在第1组替换:

/name="(([^.]+)'.)Heading-1"/

或者:

'<tag name="2-columns.Heading-1">lalalala</tag>'.replace(/name="(([^.]+)'.)Heading-1"/, 'name="Heading-1"')

是:

"<tag name="Heading-1">lalalala</tag>"

和:

'<tag name="2-columns.Heading-2">lalalala</tag>'.replace(/name="(([^.]+)'.)Heading-1"/, 'name="Heading-2"')

是:

"<tag name="2-columns.Heading-2">lalalala</tag>"

或:

'<tag name="2-columns.Heading-1">lalalala</tag>'.replace(/(name=")(([^.]+)'.)(?=Heading-1")/, "$1");