如何使用正则表达式匹配任何字符串,但至少3个字符?

时间:2010-04-07 05:53:50

标签: regex

我不是正则表达式专家,但我的要求很简单:我需要匹配任何至少有3个或更多匹配字符的字符串。

因此,例如,我们有字符串“hello world”并将其与以下内容匹配:

"he" => false // only 2 characters
"hel" => true // 3 characters match found

6 个答案:

答案 0 :(得分:50)

这是python正则表达式,但它也可能适用于实现它的其他语言。

我想这取决于你认为角色是什么。如果是字母,数字和下划线:

\w{3,}

如果只是字母和数字:

[a-zA-Z0-9]{3,}

Python还有一个正则表达式方法,用于从字符串返回所有匹配项。

>>> import re
>>> re.findall(r'\w{3,}', 'This is a long string, yes it is.')
['This', 'long', 'string', 'yes']

答案 1 :(得分:11)

试试这个。{3,}这将匹配除新行(\ n)

之外的任何字符

答案 2 :(得分:4)

如果您想从单词的开头开始匹配,请使用:

\b\w{3,}

\ b:字边界

\ w:单词字符

{3,}:字符

的三次或更多次

答案 3 :(得分:3)

我尝试找到类似主题的第一篇文章。

根据我的需要,我找到了这个

http://answers.oreilly.com/topic/217-how-to-match-whole-words-with-a-regular-expression/

"\b[a-zA-Z0-9]{3}\b"

仅限3个字符 “iokldöajf asd alkjwnkmd asd kja wwda da aij ednm< .jkakla”

答案 4 :(得分:1)

您可以尝试简单的3个点。请参阅下面的perl中的代码

  

$ a = ~m /.../ #where $ a是你的字符串

答案 5 :(得分:0)

对于.NET用法:

\ p {L} {3,}