伙计我正在做一个正则表达式我有一个输入文本,接受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
中测试过
我想至少迭代一次,最多3次,如例子中所示。我知道{1,3}
,但我如何在我的模式中使用它?我试过这个,但它没有用:
^[A-Za-z]*[\s]{0,1}[A-Za-z]*{1,3}$
任何经过证明和测试的建议都是好人。 不要担心性能(但要感谢你做得更好)。我只需要迭代部分。
答案 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}$