Regex 正则表达式模式输入描述
伙计们,我在做一个正则表达式,我有一个输入文本,可以接受1到3个单词,每个单词最多15个单词。它工作得很好,但我想改进它。这是我的 模式:Regex 正则表达式模式输入描述,regex,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}$ 样本(正确)输入: 并且已经在中国进行了测试 我希望至少迭代一次,最多迭代3次,如示例中所示。我知道{1,3},但如何在我的模式中使用它?我试过这个,但不起作用: ^[A-Za-z]*[\s]{0,1}[A-Za-z]*
^[A-Za-z]*[\s]{0,1}[A-Za-z\d\-_]{0,15}[\s]{0,15}[A-Za-z\d\-_]{0,15}$
样本(正确)输入:
并且已经在中国进行了测试
我希望至少迭代一次,最多迭代3次,如示例中所示。我知道{1,3}
,但如何在我的模式中使用它?我试过这个,但不起作用:
^[A-Za-z]*[\s]{0,1}[A-Za-z]*{1,3}$
任何经过验证和测试的建议都是不错的选择。
不要担心性能(但如果您做得更好,请感谢)。我只需要迭代部分。每行有三个单词,每个单词的最大长度为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}
试试这个;它对我有用
^(\w{1,15}\s+){0,2}\w{1,15}$
- 第一组
用于捕获0或2个单词及其空格 长度在1到15之间(\w{1,15}\s+{0,2}
- 第二部分是
,用于选择而不捕获最后一个单词\w{1,15}
- 和
指定开始,并^
指定结束李>$
\uuu
,-
,数字开头的字符串…)。哇,非常感谢。你就是那个人。“是的,这正是我所需要的。”努布在他的回答中给出了同样的模式。哦,现在编辑好了。请仔细检查正则表达式是否是您真正需要的。顺便说一句,尽可能短的时间并不总是最精确/有效的时间。顺便说一句,您可以用\w
替换[A-Za-z\d\u]
。我认为,整个正则表达式可以写成^[A-Za-z]+(?:\s[\w-]{0,15}){1,2}$
。我不知道?:有些东西不见了,谢谢。我不是正则表达式方面的专家。@WiktorStribiżew:是的。Sebastian指出,可选空格一次可以匹配超过15个字符。很抱歉,但是你要匹配abcdefghjjklmnopqrstuvwxyz
@SebastianProske:现在怎么样?根据OPs描述和现有的正则表达式,我会想出/^[a-z]{1,15}(?:\s+[\w-]{1,15}{0,2}$/I
谢谢你。如果我使用hello,它不起作用,我只是将{1,2}改为{0,2}。这个论坛太棒了。感谢您的及时回复。我忘了将3
编辑为2
。你看过演示了吗?看起来很好用。你试过什么绳子?
^(\w{1,15}\s+){0,2}\w{1,15}$