您好,我正在尝试使用正则表达式从 html 中获取文本
([a-zA-Z0-9:[]40.',?"&(/)-“”’@]){600,} // let's say the example is more than 600 letters
问题是
我想添加n
两个我的正则表达式,但最多两个换行符,例如
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dictum metus ipsum, ut hendrerit sem consectetur quis.
n
Nunc tincidunt mi nisl, in lobortis diam pulvinar vel. Nulla at tempus enim, sit amet viverra nisl.
n
Nunc tincidunt mi nisl, in lobortis diam pulvinar vel. Nulla at tempus enim, sit amet viverra nisl.
n
n
Not this
它只会匹配前 3 行,所以我得到类似的东西
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dictum metus ipsum, ut hendrerit sem consectetur quis.
n (ok)
Nunc tincidunt mi nisl, in lobortis diam pulvinar vel. Nulla at tempus enim, sit amet viverra nisl.
n (ok still one)
.....
n (ok still one)
n (ups its more than one then stop a group)
结果将是
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dictum metus ipsum, ut hendrerit sem consectetur quis.
Nunc tincidunt mi nisl, in lobortis diam pulvinar vel. Nulla at tempus enim, sit amet viverra nisl.
Nunc tincidunt mi nisl, in lobortis diam pulvinar vel. Nulla at tempus enim, sit amet viverra nisl.
这是一个负面的前瞻断言的工作:
[a-zA-Z0-9: [].',?"&(/)“”’@-]{600,}nn(?!n)
匹配 600 个或更多允许的字符,仅当匹配后找不到其他换行符时,才匹配两个换行符。
一个可能的解决方案是。
([a-zA-Z0-9:[]40.',?"&(/)-“”’@]n?){600,}
两件事:
换行符将不计入字符限制(在您的情况下为 600)
这在您的示例中不起作用,因为它的字符少于 600 个字符(大约 330 个字符)。