Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 匹配所有字符直到2个空格的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 匹配所有字符直到2个空格的正则表达式

Javascript 匹配所有字符直到2个空格的正则表达式,javascript,regex,Javascript,Regex,我使用node.js在一些转换文本中挑选字段值。随机空间非常混乱。一行是这样的: 'ADDRESS: 2626 W MAIN ST Tran Total $1.91.$3' 我知道字段的起始位置,但在两个空格后我无法将其发送到sop。以下是我正在尝试的内容,但它会将所有内容返回到“ADDRESS:”的右侧: /ADDRESS:\s([[^\s{2,}]+)/ 有没有一种方法可以包含空格,并在第一个双空格处停下来并向前

我使用node.js在一些转换文本中挑选字段值。随机空间非常混乱。一行是这样的:

'ADDRESS: 2626 W MAIN ST                                       Tran Total $1.91.$3'
我知道字段的起始位置,但在两个空格后我无法将其发送到sop。以下是我正在尝试的内容,但它会将所有内容返回到“ADDRESS:”的右侧:

/ADDRESS:\s([[^\s{2,}]+)/
有没有一种方法可以包含空格,并在第一个双空格处停下来并向前看?这不起作用:

/ADDRESS:\s(.*(q!\s{2,}))/
我们应该做到这一点。任意数量的非空格或后面没有空格的空格。

为什么不这样做呢

out = input.split("  ")[0]; // two spaces in that string
这比正则表达式更有效。或者试试这个:

var spaces = input.indexOf("  "); // again, two spaces
out = spaces < 0 ? input : input.substr(0,spaces);
var spaces=input.indexOf(“”;//同样,两个空格
out=空格<0?输入:input.substr(0,空格);

使用非贪婪通配符:

/ADDRESS:\s.*?(?=\s{2})/

如果地址没有两个空格,而是以字符串结尾或换行符结尾,那该怎么办?我想它应该是两个空格,这样地址中单词之间的空格就不会阻止它。@Barmar:空格后面没有空格。是的,这让我够近了。我意识到我有一些带有a\n的行和一些带有多个空格的行,因为它正在用OCR转换。感谢.Or
input.substring(input.indexOf(“”)+1,input.indexOf(“”))
用于组。(第二个是两个空格。愚蠢的评论。)这是个不错的选择,但有时我们别无选择。例如,在我的例子中,我正在处理现有的项目,其中我们有一种基于正则表达式从pdf读取值的方法。我不能仅为一个值更改现有逻辑。
/ADDRESS:\s.*?(?=\s{2})/