作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个虚拟输入数据:
john:买啤酒
萨姆:吃香蕉
*** 分频器
不相关的行为
路易斯:走路
以及捕获人的行为的正则表达式
:/^[\S]*:.*/gm
我需要修改它,以便它仅包含符合文本下方给定模式 (*** DIVIDER
) 的操作。
我想我可以使用例如/^[\S]*:.*(?=[\S]*\sDIVIDER)/gm
但由于某种原因它不起作用。
我设置了 regex101 link玩
最佳答案
您正在行间查找,您需要在正向查找中使用[\s\S]*?
。然而,从性能 Angular 来看,这不是一个好的做法。实现它的快速方法是匹配遵循模式 \S+:.*
的所有行,然后查看它们后面是否有分隔符:
^(?:[^:\s]+:.*\s+)+(?=.*?DIVIDER)
var s = `john: buys beer
sam: eats bananas
*** DIVIDER
irrelevant actions
luis: walking
john: buys beer`;
console.log(s.match(/^(?:[^:\s]+:.*\s+)+(?=.*?DIVIDER)/gm));
关于JavaScript 正则表达式 : All matches of a given format up until pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49965239/
我是一名优秀的程序员,十分优秀!