我尝试匹配以@开头的字符串,可以包含任意数量的字母或数字,但最多只能包含一个空格(或零空格)。到目前为止我已经
了@([A-Za-z0-9]+)
匹配字符但没有空格。我想我需要\ {{0,1}但我不知道该把它放在哪里..任何人都可以帮忙吗?
感谢。
答案 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]*$
Java模式将是,
"^@[a-zA-Z0-9]+ ?[a-zA-Z0-9]*$"
答案 2 :(得分:0)
你可以使用带有负前瞻的正则表达式:
^@((?!(?:\S* ){2})[A-Za-z0-9 ]+)$
答案 3 :(得分:0)