正则表达式允许单词之间的单个空格

时间:2013-04-05 14:36:26

标签: regex

我想知道一个允许空格的正则表达式。我的例子是一个项目名称(2个单词)。它可以由大写,小写字母和一个空格组成。我word1 word2。我尝试使用[A-Za-z\sA-Za-z],但它不起作用。

3 个答案:

答案 0 :(得分:4)

试试这个:

[A-Za-z]+(\s[A-Za-z]+)?

这允许一个单词,可选地后跟单个空格和另一个单词,这要求空格字符只有两个单词之间(如果存在的话)(即正则表达式只允许单词)。

答案 1 :(得分:0)

您需要分隔角色类。我也使用过分词,因此这与abc abc中的123abc abc123不匹配。 +表示至少需要1个匹配(前面的字符,字符类或组)。请注意,字符类也需要+,因为单个字符类会捕获单个字符。

\b[A-Za-z]+\s+[A-Za-z]+\b

如果您只想允许空格:

\b[A-Za-z]+[ ]+[A-Za-z]+\b

空间周围的括号不是必需的,但可以直观地帮助正则表达式。

答案 2 :(得分:0)

试试这个:

r'[a-zA-Z0-9_ ]*$'

这允许一个单词,可选地后跟一个空格和另一个单词,这要求空格字符仅在两个单词之间