什么是允许(可选)组的空间的正确方法?

时间:2014-05-15 08:21:35

标签: regex

/(\w+)\s+?([a-z][A-Z])\s+?(\w+)/

现在我使用\s+?来允许(可选)空格,这是正确的做法吗?

3 个答案:

答案 0 :(得分:1)

您的正则表达式要求有一个或多个空格。

如果您希望空格完全可选(非非贪婪),则应使用\s*?

如果您只想要一个空格或没有空格,那么您应该使用\s?

如果您只想要空格而不是其他空格字符,则应使用[ ]*?。我使用了字符类来使空格更明确,但不需要[]

答案 1 :(得分:1)

有两种方法:

/\s?/匹配单个空格或没有空格。

/\s*/匹配单个/多个空格或没有空格。

答案 2 :(得分:1)

+运算符表示一次或多次重复。如果你想允许空格可选,意味着它们不能在那里,你需要使用*运算符,这意味着重复0次或更多次。

或者,你可以使用类似的东西:(\s+?)?,这实际上意味着可选地,可以有一个或多个空格。

话虽如此,坚持\s*?将通过更清洁的正则表达式产生你想要的东西。