正则表达式 - 匹配无限制的没有。固定长度的单词

时间:2016-01-07 10:50:31

标签: regex

我是正则表达式的新手。我正在寻找一个表达式,它将返回第一个字符长度为1的字符串,后跟无限数量的长度为3或更长的单词。

每个单词之间应该有一个空格+。

到目前为止,我有:

([A-Za-z]{1,1} [A-Za-z+]{3,100})

目前只会返回以下短语:

'我会'和'一只鸟'

但我希望它能返回如下的短语:

'我会一直尝试'和'一只鸟飞进笼子里'

任何帮助将不胜感激。我正在使用名为“Oracle EDQ”的应用程序。

2 个答案:

答案 0 :(得分:2)

您需要将限制量词{3,}应用于[A-Za-z]组,将*(零次或多次重复)应用于匹配空格+ 3 + - 字词的外部组:

^[A-Za-z]( [A-Za-z]{3,})*$

regex demo。请注意锚点^$的使用,当您需要匹配特定位置(此处,单词的开头和结尾)的字符时,这一点非常重要。

正则表达式匹配:

  • ^ - 检查正则表达式引擎是否在字符串的开头
  • [A-Za-z] - 正好1个字母a到z和A到Z
  • ( [A-Za-z]{3,})* - 零个或多个序列......
    • - 空格
    • [A-Za-z]{3,} - 3个或更多ASCII字母
  • $ - 字符串结束。

答案 1 :(得分:1)

您可以使用此正则表达式:

^[A-Za-z](?: [A-Za-z]{3,})+$

RegEx Demo