正则表达式 - 匹配具有零个或一个空格的字符串

时间:2014-07-11 14:03:05

标签: java regex

我尝试匹配以@开头的字符串,可以包含任意数量的字母或数字,但最多只能包含一个空格(或零空格)。到目前为止我已经

@([A-Za-z0-9]+)

匹配字符但没有空格。我想我需要\ {{0,1}但我不知道该把它放在哪里..任何人都可以帮忙吗?

感谢。

4 个答案:

答案 0 :(得分:8)

假设你只关心单词中的空格,而不是前导或尾随,那么你可以使用它:

@[A-Za-z0-9]* ?[A-Za-z0-9]*

说明:

@以文字@

开头

[A-Za-z0-9]任何字母或数字

*字母或数字的长度可以是{0,无穷大}

?空格字符,0或一次

[A-Za-z0-9]*空格后面的任意数量的尾随字母或空格(如果有的话)

答案 1 :(得分:1)

您可以尝试使用以下正则表达式匹配以@开头的单词,其中包含任意数量的字母或数字以及可选空格,

^@[a-zA-Z0-9]+ ?[a-zA-Z0-9]*$

DEMO

Java模式将是,

"^@[a-zA-Z0-9]+ ?[a-zA-Z0-9]*$"

答案 2 :(得分:0)

你可以使用带有负前瞻的正则表达式:

^@((?!(?:\S* ){2})[A-Za-z0-9 ]+)$

答案 3 :(得分:0)

这是你需要的吗?

@[A-Za-z0-9]+(?:\s?)[A-Za-z0-9]+

Online demo