gpt4 book ai didi

javascript - 正则表达式匹配段落内的文本

转载 作者:行者123 更新时间:2023-12-02 15:40:53 26 4
gpt4 key购买 nike

我正在尝试匹配包含关键字的段落。

示例文本:

I have a textfile containing text. Each paragraph 
may span multiple lines.

Paragraphs have a newline between them. I would
like to match a paragraph that holds some text
and would like to match this line as well.

The regex doesn't have to match the first or last
paragraph (we can assume each paragraph has
newlines around it).

示例关键字:holds(因此中间段落应该匹配)。

我尝试了以下正则表达式: var regX =/(.+\r?\n)+.*holds.*(?=(\r?\n)?)/igm;

这匹配前两行(不是最后一行):

Paragraphs have a newline between them. I would 
like to match a paragraph that holds some text

.*holds.* 更改为 .*holds[\s\S]* 选择太多(在示例中选择第二和第三段)(.*holds[\s\S]*? 也不起作用 - 不够贪婪。)

感谢您的帮助。

最佳答案

给你:

^\r?\n(?:.+\r?\n)*.*\bholds\b.*\r?\n(?:.+\r?\n)*(?=\r?\n)

/gm一起使用。 Demo

请注意,此 regix 受 catastrophic backtracking 的约束但遗憾的是,您在 JavaScript 中对此无能为力。

此模式基本上捕获一个空行,后跟一些行 ((?:.+\r?\n)*),然后是包含 holds 的行(.*\bholds\b.*\r?\n),然后再按 0 行或多行 ((?:.+\r?\n)* ),最后确保最后一个换行符本身后面跟着一个换行符:(?=\r?\n)

关于javascript - 正则表达式匹配段落内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32594792/

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