正则表达式模式输入描述

时间:2016-04-07 13:24:23

标签: regex

伙计我正在做一个正则表达式我有一个输入文本,接受1到3个单词,每个单词最多15个单词。它工作正常,但我想改进它。这是我的 图案:

^[A-Za-z]*[\s]{0,1}[A-Za-z\d\-_]{0,15}[\s]{0,15}[A-Za-z\d\-_]{0,15}$

示例(正确)输入:

here you go
the sample
there you are

已在https://regex101.com/

中测试过

我想至少迭代一次,最多3次,如例子中所示。我知道{1,3},但我如何在我的模式中使用它?我试过这个,但它没有用:

^[A-Za-z]*[\s]{0,1}[A-Za-z]*{1,3}$

任何经过证明和测试的建议都是好人。 不要担心性能(但要感谢你做得更好)。我只需要迭代部分。

2 个答案:

答案 0 :(得分:1)

每行有三个单词,每个单词的最大长度为15。

正则表达式: ^(?:[A-Za-z]{1,15})(?: [A-Za-z]{1,15}){0,2}$

<强>解释

  • (?:[A-Za-z]{1,15})与第一个字匹配。

  • (?: [A-Za-z]{1,15}){0,2}匹配最后两个单词,没有尾随空格。

<强> Regex101 Demo

答案 1 :(得分:0)

试试这个;它对我有用。

^(\w{1,15}\s+){0,2}\w{1,15}$