69

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

4

2 回答 2

128

“空格或无空格”与“零个或一个空格”或“零个或多个空格”相同,我不确定您到底想要什么。

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

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

如果“空格”实际上是指“任何空格字符”(例如,制表符),则可以使用\s大多数正则表达式引擎将其翻译为空格。因此,任何空白字符的零个或一个将是\s?,而零个或多个将是\s*

于 2013-09-09T15:42:46.307 回答
17

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

[ ]{0,1}
 {0,1}
[ ]?
 ?
于 2017-02-16T15:18:13.253 回答