Javascript 有人能帮我用RegExp提取文本吗?

Javascript 有人能帮我用RegExp提取文本吗?,javascript,regex,extract,Javascript,Regex,Extract,今天我被一个正则表达式弄伤了头。我无法提取文本的一部分。我的文字是这样的: <!--TEXT[title]--> sometext 1 <!--END--> <!--TEXT[title]--> sometext 2 <!--END--> 我有这个正则表达式代码mytext.match(//m)假设您需要一个正则表达式,那么以下内容应该可以工作: <\!--TEXT\[([^\]]*)\]-->\s*\n(.*)(?!<\!--

今天我被一个正则表达式弄伤了头。我无法提取文本的一部分。我的文字是这样的:

<!--TEXT[title]-->
sometext 1
<!--END-->
<!--TEXT[title]-->
sometext 2
<!--END-->

我有这个正则表达式代码
mytext.match(//m)

假设您需要一个正则表达式,那么以下内容应该可以工作:

<\!--TEXT\[([^\]]*)\]-->\s*\n(.*)(?!<\!--END-->)
\s*\n(.*)(?!)
如果该文本位于DOM中,则最好解析DOM

说明:

<\!--TEXT\[ // Match the start.
([^\]]*) // Match (in group 1), everything up until the next ']'
\]-->\s*\n // Match to the end of this line.
(.*) // Match anything (in group 2).
(?!<\!--END-->) // Stop before the end tag is next. (This will mean you get everything up to, but not including the previous line break).
\s*\n//匹配到此行的末尾。
(.*)//匹配任何内容(在组2中)。
(?!)//在下一个结束标记之前停止。(这意味着您将获得所有内容,但不包括上一个换行符)。

假设您需要正则表达式,以下内容应该可以使用:

<\!--TEXT\[([^\]]*)\]-->\s*\n(.*)(?!<\!--END-->)
\s*\n(.*)(?!)
如果该文本位于DOM中,则最好解析DOM

说明:

<\!--TEXT\[ // Match the start.
([^\]]*) // Match (in group 1), everything up until the next ']'
\]-->\s*\n // Match to the end of this line.
(.*) // Match anything (in group 2).
(?!<\!--END-->) // Stop before the end tag is next. (This will mean you get everything up to, but not including the previous line break).
\s*\n//匹配到此行的末尾。
(.*)//匹配任何内容(在组2中)。
(?!)//在下一个结束标记之前停止。(这意味着您将获得所有内容,但不包括上一个换行符)。

此文本是否在某些HTML中?如果是这样,不要用正则表达式解析HTML:而是解析DOM。@JackManey这是我最喜欢的答案。这个文本在某个HTML中吗?如果是这样,不要用正则表达式解析HTML:而是解析DOM。@JackManey这是我最喜欢的答案。当然,嵌套注释会失败,但OP应该知道这一点……是的,如果你处理嵌套注释,你需要一个lexer或DOM。另一方面,在这种特殊情况下,它们看起来不像是嵌套的(没有错误)。当然,嵌套注释会失败,但OP应该知道这一点……是的,如果处理嵌套注释,您需要一个lexer或DOM。另一方面,在这种特殊情况下,它们看起来不像是嵌套的(不存在一些错误)。