正则表达式 - 空间或没有空间

时间:2013-09-09 15:40:16

标签: regex

我的正则表达式的一部分是:/<a .*?(" "|"")(href)。在(" "|"")内,我试图说要与空格或没有空格匹配,但我无法从中得到任何东西。我也试过("\s"|"")而没有结果。

2 个答案:

答案 0 :(得分:81)

“space or no space”与“零或一个空格”相同,或者可能是“零或多个空格”,我不确定你想要的是什么。

在下面的讨论中,我将使用<space>来表示单个空格,因为在短代码片段中很难看到单个空格。在实际的正则表达式中,您必须使用实际的空格字符。

零或一空格表示为单个空格,后跟问号(<space>?)。这将恰好匹配零个或一个空格。如果您想匹配零个或任意数量的空格,请将?替换为*(例如:<space>*

如果通过“space”实际上意味着“任何空白字符”(例如,选项卡),则可以使用大多数正则表达式引擎转换为空格的\s。因此,任何空白字符中的零或一个为\s?,零或多为\s*

答案 1 :(得分:6)

spaceno-space问题的其他替代方法(注意某些开头的空格):

[ ]{0,1}
 {0,1}
[ ]?
 ?