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

时间:2013-06-25 00:04:45

标签: javascript regex

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

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

我知道哪些字段开始,但我无法在两个空格后得到它。这是我正在尝试但它返回'ADDRESS:'右边的所有内容:

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

有没有办法包含空格并在前瞻的第一个双空间停留?这不起作用:

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

3 个答案:

答案 0 :(得分:6)

使用非贪心的通配符:

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

REGEXR

答案 1 :(得分: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);

答案 2 :(得分:2)

/ADDRESS:\s((?:\S|\s(?!\s))*)/

应该做的伎俩。任何数量的非空格或空格后面没有空格。