正则表达式:匹配字符串,其中包含任意数量的字母但数量/特殊字符数量有限

时间:2016-08-18 04:03:12

标签: regex string

我想匹配一个字符串,该字符串可能是某个人的姓名或公司名称,例如:

Bob Stewart
Cool-Cows PTY LTD.
55 Burgers Company
Billy O'Dilly
Tom & John's Paper Supplies

基本上它们是字符串,主要由字母(无限字母或空格)组成,可能包含数字或特殊字符(',&, - 等),但不是很多,所以我想限制最大出现次数字符串中的这些字符/数字(例如每个最多3个)。

我知道如何使用量词来限制字符集的出现,但它会在第一次出现时停止: ^[a-zA-Z\s]*[^a-zA-Z]{0,3}

有人可以帮忙吗?感谢

3 个答案:

答案 0 :(得分:0)

这有帮助吗?

[a-zA-Z\s]|^[^a-zA-Z]{0,3}

答案 1 :(得分:0)

你不能在如上所述的不明确陈述中与量词匹配。 我有办法用Javascript:

<script>
var str='a,,r,t,';
var myTest=str.replace(/[\w]/g,'');
if(myTest.length<4)
  alert('Valid Text')
else
  alert('InValid Text')
</script>

步骤:

  • 删除Characher Alpha

  • 计数非Alpha

  • 设置IF语句以检查

答案 2 :(得分:0)

最多寻找​​3个特价:

^([A-Za-z ]*[^A-Za-z ]){0,3}[A-Za-z ]*$

请参阅live demo