我需要正则表达式才能将[a-zA-Z]的单个单词与6个或更多字符匹配。
a
27
it was good because
it
cat went to
four
eight is bigger
peter
pepper
objects
83
harrison99
adjetives
atom-bomb
胡椒
物体
形容词
这很好,因为
八个更大
原子的弹
/[a-zA-z]{6,}/g
根据RegEx 101匹配6个字符或更多单词,但当我在MySQL数据库中使用它来过滤上的表时匹配RegExp 。
如果一行包含数字或标点符号和/或包含一个或多个单词,我不希望它包括在内。
我只希望结果为单个,整个单词为6+个字符
答案 0 :(得分:3)
删除分隔符并为开始/结束添加anchors:
SELECT 'abcdef' REGEXP '^[a-zA-Z]{6,}$'
- > 1
SELECT 'a abcdef' REGEXP '^[a-zA-Z]{6,}$'
- > 0
此外,我将字符类中的[a-zA-z]
更改为[a-zA-Z]
。
您也可以使用[a-zA-Z]
POSIX style bracket extension代替[[:alpha:]]
。所以它变成了:
^[[:alpha:]]{6,}$
(作为附注:MySql使用Henry Spencer's implementation of regular expressions。如果需要word boundaries,请使用[[:<:]]word[[:>:]]
See manual以获得进一步的语法差异)