regex-match-attribute in-a-html-code
我正在尝试的两个正则表达式:
\“([^“]*)\” (?s)(?)(。+?)(?=)
都不适合我,尝试使用[为任何两个HTML标签之间的字符串Https://regex101.com/r/apbuew/2]
- 我期望它在字符串为文本时仅匹配 当前行为与两种情况匹配 <=<([^{]*)>Edit:我希望文本是动态的,而不是特定于测试文本
(?![^<>]*>)(TEST\-TEXT)
这里,假设您具有有效的HTML,则负LookAhead确保我们不在标签定义中,其中所有属性都被定义。它通过确保出现的下一个角度括号不是
>
表示我们在标签定义中。
注意,以下等级也将达到相同的结果:
(?=[^<>]*<)(TEST\-TEXT)
(TEST\-TEXT)(?=[^<>]*<)
\>([^"<]*)\<
Edit:没有打开和关闭标签包括:
(?<=\>)([^"<]*)(?=\<)
TEST-TEXT(?=<\/a>)
匹配Test-Text
TEST-TEXT
向前看查看关闭标签
?=
见 Regex101
Regex如果不需要此表达式,则可以在
regex101.com.中对其进行修改或更改。
Regex电路
const regex = /([A-Z-]+)(<\/)/gm;
const str = `<div class="TEST-TEXT">hi</span><a href=\\"https://en.wikipedia.org/wiki/TEST-TEXT\\">first young CEO's
TEST-TEXT</a><span class="test">hello</span><div class="TEST-TEXT">hi</span><a href=\\"https://en.wikipedia.org/wiki/TEST-TEXT\\">first young CEO's
TEST-TEXT</a><span class="test">hello</span>`;
const subst = `NEW-TEXT$2`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);