Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式:获取惰性字符串_Javascript_Regex - Fatal编程技术网

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 编辑:最后一篇“文章”和“在此之前

我正在用一种接近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

编辑:最后一篇“文章”和“在此之前”之间的字符串可能包含最常用的阅读符号,并且长度不确定,因此大多数情况下,它还将包含空格和引号

您可以尝试使用前瞻正面
(?=)

向前看:在表达式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