如何在方括号组中表示单个空格字符

时间:2013-01-16 08:19:11

标签: regex

我面临着在[]字符集表达式中表示单个空格的问题。我最终使用了这样的东西

([a-zA-Z0-9]|\x20)+

我认为不是很优雅

更新:我现在知道我的正则表达式出了什么问题。我使用过这样的东西

[A-Za-z0-9/.,':!?$%()- ]+

但是当我将空间移动到9之后

[A-Za-z0-9 /.,':!?$%()-]+

它有效,只是很奇怪。我正在尝试使用在线正则表达式测试程序RegExr

Update2 :我现在发现问题是正则表达式中的-用于表示[]中的范围,因此它之前和之后的任何内容都有不同的意义而不仅仅是是一个朴素的人物

2 个答案:

答案 0 :(得分:16)

[a-zA-Z0-9 ]

将为角色类添加空格。我猜你已经知道了,并且你想确保你的字符串中只有单个空格。在这种情况下,您需要额外的前瞻:

^(?!.*  )[a-zA-Z0-9 ]*$

匹配包含字母数字和空格的字符串,但只匹配单个空格。

答案 1 :(得分:7)

您可以 使用空格。

对于问题中的正则表达式结构:

 ([a-zA-Z0-9]| )+

在实践中:

[a-zA-Z0-9 ]+