使用正则表达式检查用户输入

时间:2014-02-23 16:11:47

标签: java regex

我是正则表达式的新手,所以我希望在这方面有一个容易出现的问题。基本上我试图检查用户输入是否匹配包含字母或数字的单词或短语     ([a-zA-Z0-9]+)|(([a-zA-Z0-9]+\s+[a-zA-Z0-9]+)+)\s* 希望它不是太乱,所有的帮助都非常感激。 它适用于像“男人是男人”这样的短语,而不是“男人是狗”这样的短语让我感到困惑。

2 个答案:

答案 0 :(得分:2)

它应该适用于您的两个短语并且两次捕获the,因为您的正则表达式不会评估您的第二次轮换,因为第一个([a-zA-Z0-9]+)每次都会匹配(请参阅{ {3}})。

如果您要做的只是匹配a word or phrase containing letters or numbers我会使用

(?:[a-zA-Z0-9]+\s?)+

here

我也不会使用\w代替[a-zA-Z0-9],因为\w_匹配许多正则表达式引擎。

说明:

(?:           #start of non-capturing group
  [a-zA-Z0-9] #character class matching one of a-z, A-Z and 0-9
  +           #between one and unlimited times
  \s?         #optional whitespace (includes tabs newlines)
)             #end of non-capturing group

答案 1 :(得分:0)

如果您只想检查字母或数字,可以直接执行:

String regex = "([a-z]|[A-Z]|[0-9])+";