我需要使用regexp从长于M个字母的单词中选择前N个字母。可能吗?设N = 3,M = 5,字符串为:
We prefer questions that can be answered, not just discussed
然后我的正则表达式必须匹配
pre que ans dis
我可以用
匹配所有单词中的前3个字母 /\b[A-z]{3}/g
现在我如何才能将这个应用于长度超过5个字母的单词?
答案 0 :(得分:2)
您可以匹配两个未捕获的字母:
/(\b[A-z]{3})[A-z]{2}/g
您确定[A-z]
是您想要的而不是[A-Za-z]
吗? [A-z]
包含以下符号:[\]^_'
答案 1 :(得分:2)
您可以使用以下正则表达式:
var s = 'We prefer questions that can be answered, not just discussed'
var r = s.match(/\b[a-z]{3}(?=[a-z]{2,}\b)/gi)
console.log(r) //=> [ 'pre', 'que', 'ans', 'dis' ]
注意:字符类[A-z]
包含介于ASCII Table之间的特殊字符。