gpt4 book ai didi

JavaScript 正则表达式 : Finding a String that does not contain

转载 作者:太空狗 更新时间:2023-10-29 14:51:05 24 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式,它将在代码编辑器 ( Khan Live Editor ) 中找到一串 HTML 标记并给出以下错误:

"You can't put <h1.. 2.. 3..> inside <p> elements."

这是我要匹配的字符串:

<p> ... <h1>

这是我不想匹配的字符串:

<p> ... </p><h1>

相反,预期的行为是在这种情况下出现另一条错误消息。

所以在英语中我想要一个字符串;
- 以 <p> 开头和
- 以 <h1> 结尾但是
- 不包含 </p> .

如果我不关心 </p> 的存在,这很容易完成.我的表情是这样的,/<p>.*<h[1-6]>/它工作正常。但我需要确保 </p>不在 <p> 之间和 <h1>标签(或任何 <h#> 标签,因此是 <h[1-6]> )。


我在这里尝试了很多其他帖子的不同表达方式:

Regular expression to match a line that doesn't contain a word?

我从中尝试过:<p>^((?!<\/p>).)*$</h1>

regex string does not contain substring

我从中尝试过:/^<p>(?!<\/p>)<h1>$/

Regular expression that doesn't contain certain string

此链接建议:aa([^a] | a[^a])aa

这在我的情况下不起作用,因为我需要特定的字符串“</p>”,而不仅仅是它的字符,因为 <p> ... <h1> 之间可能还有其他标签。 .


我真的被难住了。我试过的正则表达式似乎应该工作...知道我将如何使它工作吗?也许我错误地实现了其他帖子的建议?

在此先感谢您的帮助。

编辑:

回答我为什么需要这样做:

问题是 <p><h1></h1></p>h1 以来是一个语法错误关闭第一个 <p>并且有一个无与伦比的</p> .原始语法错误并不能提供信息,但在大多数情况下是正确的;我的例子是异常(exception)。如果正则表达式发现此异常,我正在尝试向语法解析器传递一条新消息以覆盖原始消息。

最佳答案

有时将问题分解会更好。

var str = "YOUR INPUT HERE";
str = str.substr(str.indexOf("<p>"));
str = str.substr(0,str.lastIndexOf("<h1>"));
if( str.indexOf("</p>") > -1) {
// there is a <p>...</p>...<h1>
}
else {
// there isn't
}

此代码不能很好地处理“如果没有 <p> 会怎样”的情况,但它确实给出了如何在不使用正则表达式的情况下将问题分解为更简单的部分的基本思路。

关于JavaScript 正则表达式 : Finding a String that does not contain </p>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33901362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com