javascript - 正则表达式查找最短匹配句子
问题描述
我有一句话“他觉得房间在2082年不断失焦,没有梗塞”
我将得到需要提取的句子的开头和结尾。例如:- 开始 -> 在。结束 -> 梗塞
我想提取句子“在 2082 年,没有梗塞”
我尝试了正则表达式str.match(/\bin\b.*?\binfarcts\b/)
我得到了完整的句子“他觉得房间在 2082 年不断失焦,没有梗塞”而不是“在 2082 年,没有梗塞”
解决方案
这是执行此操作的一种方法,正则表达式查找in
句子中的最后一个单词,然后获取之后的所有内容,直到找到一个infarcts
单词。
var str = 'in which he felt that the room was constantly going out of focus in 2082, no infarcts'
console.log(str.match(/(\bin\b)(?!.*\b\1\b).*infarcts/)[0])
推荐阅读
- jquery - 由于用户未通过身份验证,Flask + Ajax 调用“随机”失败
- git - 无法使用 rebase 拉取:您有未暂存的更改
- c# - 在 Visual Studio C# 中的 PictureBox 中填写函数?
- excel - XLSXWriter和Excel“=FILTER()”函数?
- javascript - 为什么我的影子 dom 会破坏我的自定义元素?
- ruby-on-rails - 如何强制 Ruby 在 Net::HTTP 标头中遵守下划线
- loops - Shopify / Liquid - 产品标签 forloop 的输出顺序似乎是随机的?
- gradle - 当 2 个具有共享 .gradle 文件夹的分支并行运行时,Gradle 构建在 CI 中失败
- javascript - 单击后如何保持菜单中的项目被选中
- bash - 在 bash 中实现每组排序的最高值