gpt4 book ai didi

mysql - 用于匹配 MySQL 数据库中单个完整单词的正则表达式

转载 作者:行者123 更新时间:2023-11-29 05:19:23 25 4
gpt4 key购买 nike

我需要一个正则表达式来匹配仅包含 6 个或更多字符的 [a-zA-Z] 的单个单词。

单词列表:

a
27
it was good because
it
cat went to
four
eight is bigger
peter
pepper
objects
83
harrison99
adjetives
atom-bomb

以下将匹配

胡椒

对象

形容词

如果以下也匹配也不错,因为我可以在之后删除重复项

这很好,因为

8 更大

原子弹

到目前为止我有这个

/[a-zA-z]{6,}/g

根据 RegEx 101 匹配 6 个字符或更多的单词但是当我在我的 MySQL 数据库中使用它来过滤匹配 RegExp 的表时。

  1. 目前它包括包含标点符号和其他非a-zA-Z 字符的单词。我不希望它包含带有数字或标点符号的结果。
  2. 在理想情况下,我不希望它包含包含多个单词的行,因为通常其他单词已经是重复的。

实际 MySQL 结果

如果一行包含数字或标点符号和/或包含一个或多个单词,我不希望包含它。

我只想要包含 6 个以上字符的单个完整单词的结果

Results

最佳答案

删除分隔符并添加 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]你也可以使用 [[:alpha:]] POSIX style bracket extension .于是就变成了:

^[[:alpha:]]{6,}$

(附带说明:MySql 使用 Henry Spencer's implementation of regular expressions 。如果需要 word boundaries,请使用 [[:<:]]word[[:>:]] See manual 以获得更多语法差异)

关于mysql - 用于匹配 MySQL 数据库中单个完整单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27906385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com