2

我正在使用 node.js 来挑选一些转换后的文本中的字段值。随机空间非常混乱。一行如下所示:

'ADDRESS: 2626 W MAIN ST                                       Tran Total $1.91.$3'

我知道字段从哪里开始,但是在两个空格之后我无法让它停止。这是我正在尝试的,但它会将所有内容返回到“地址:”的右侧:

/ADDRESS:\s([[^\s{2,}]+)/

有没有办法包含空格并在第一个双空格处停下来并向前看?这不起作用:

/ADDRESS:\s(.*(q!\s{2,}))/
4

3 回答 3

10

使用非贪婪通配符:

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

正则表达式

于 2013-06-25T00:09:07.447 回答
3

为什么不这样做呢?

out = input.split("  ")[0]; // two spaces in that string

这比正则表达式更有效。或者试试这个:

var spaces = input.indexOf("  "); // again, two spaces
out = spaces < 0 ? input : input.substr(0,spaces);
于 2013-06-25T00:08:47.067 回答
2
/ADDRESS:\s((?:\S|\s(?!\s))*)/

应该做的伎俩。任意数量的非空格或不跟空格的空格。

于 2013-06-25T00:08:36.173 回答