Javascript 正则表达式:获取惰性字符串
我正在用一种接近javascript的语言做一个实习项目,但我在使用正则表达式时遇到了一个问题,其要点是: 我有以下案文:Javascript 正则表达式:获取惰性字符串,javascript,regex,Javascript,Regex,我正在用一种接近javascript的语言做一个实习项目,但我在使用正则表达式时遇到了一个问题,其要点是: 我有以下案文: Article 1243fdsg Article hf453dfg Article ds g,f re d.4 '35 67f before here 我只需要能拿到 d.4'35第g、f、f条 部分而不是全部 我尝试过很多东西,在网上搜索过,但都找不到, 到目前为止,我得到的正则表达式是: Article.*?before here 编辑:最后一篇“文章”和“在此之前
Article 1243fdsg Article hf453dfg Article ds g,f re d.4 '35 67f before here
我只需要能拿到
d.4'35第g、f、f条
部分而不是全部
我尝试过很多东西,在网上搜索过,但都找不到,
到目前为止,我得到的正则表达式是:
Article.*?before here
编辑:最后一篇“文章”和“在此之前”之间的字符串可能包含最常用的阅读符号,并且长度不确定,因此大多数情况下,它还将包含空格和引号您可以尝试使用前瞻正面
(?=)
向前看:在表达式B后面找到表达式A:A(?=B)
输出:
Article dsgfred43567f
演示:一些需要注意的事项:
与JavaScript中的换行符不匹配。如果需要,请使用
(或[^]
)[\S\S]
- 确保您匹配的内容中没有出现
。为此,您可以使用负前瞻:文章
(?!Article)
const text=`Article 1243fdsg Article hf453dfg Article dsgfred43567f
换行符,空格和标点符号!在这里之前`;
const result=text.match(/Article(((?!Article)[^])*)在此之前/);
console.log(结果[1])
对于您拥有的文本,您希望它也获得第1243fdsg条
和第hf453dfg条
吗?现在,我想获得第ds g,f re d.4'35 67f条作为返回项OK-字符串在这里之前是否实际包含文本
?如果没有,字符串中的那个点是什么?作为一个例子,字符串以'before here'结尾是的是否需要用正则表达式来完成?谢谢你的回答,但问题似乎比我想象的要深一点,冠词和before here之间的字符串可以包含空格,引号和逗号's@chissie然后将它们添加到您的字符范围[a-zA-Z0-9\s\?]
Article dsgfred43567f