正则表达式:未能匹配行尾

时间:2016-02-18 14:57:27

标签: regex vba

我正在努力使用正则表达式停止在行尾。

输入看起来像这样:

How text spacing looks in Notepad++

有些行在冒号后面有值(可能包含任何字符),有些则没有。结肠两侧可能有空格,可能没有。

对于第2行和第4行,以下工作(即分别匹配1216):

Pink\s*:\s*(.*)\n
Red\s*:\s*(.*)\n

但对于第3行(没有值匹配),使用上述语法的正则表达式返回16,即超出行尾的读取。

任何人都可以建议我做错了什么吗?我使用的是VBA。

1 个答案:

答案 0 :(得分:3)

你遇到的问题是\s速记字符类匹配垂直和水平空格。也就是说,它匹配空格和换行序列。

因此,您需要将其限制为仅匹配水平空格。

您需要将\s替换为[ \t][^\S\r\n\v]