我是正则表达式的新手。我正在寻找一个表达式,它将返回第一个字符长度为1的字符串,后跟无限数量的长度为3或更长的单词。
每个单词之间应该有一个空格+。
到目前为止,我有:
([A-Za-z]{1,1} [A-Za-z+]{3,100})
目前只会返回以下短语:
'我会'和'一只鸟'
但我希望它能返回如下的短语:
'我会一直尝试'和'一只鸟飞进笼子里'
任何帮助将不胜感激。我正在使用名为“Oracle EDQ”的应用程序。
答案 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)