Mysql 正则表达式:匹配XYX,其中X和Y是任意字母

Mysql 正则表达式:匹配XYX,其中X和Y是任意字母,mysql,node.js,regex,Mysql,Node.js,Regex,有没有办法通过松散指定的模式/组合检索字符串 示例 数据:[AAA、ABA、CAC、CCA、BCB] 输入:XYX 输出:ABA、CAC、BCB 我正在使用mySQL regexp函数和nodeJS。以下正则表达式应该可以完成这项工作: /([A-Z])[A-Z]\1/g 它将查找任意大写字母,然后是另一个字母和第一个字母的重复。g标志将使其在字符串中多次适用 感谢Paul提供的“消极前瞻”修复!为了让我的答案更完整,以供未来读者阅读,我将其纳入我的帖子: /([A-Z])(?!\1)[A-Z

有没有办法通过松散指定的模式/组合检索字符串

示例

数据:[AAA、ABA、CAC、CCA、BCB]

输入:XYX

输出:ABA、CAC、BCB


我正在使用mySQL regexp函数和nodeJS。

以下正则表达式应该可以完成这项工作:

/([A-Z])[A-Z]\1/g
它将查找任意大写字母,然后是另一个字母和第一个字母的重复。
g
标志将使其在字符串中多次适用

感谢Paul提供的“消极前瞻”修复!为了让我的答案更完整,以供未来读者阅读,我将其纳入我的帖子:

/([A-Z])(?!\1)[A-Z]\1/g

以下正则表达式应执行此操作:

/([A-Z])[A-Z]\1/g
它将查找任意大写字母,然后是另一个字母和第一个字母的重复。
g
标志将使其在字符串中多次适用

感谢Paul提供的“消极前瞻”修复!为了让我的答案更完整,以供未来读者阅读,我将其纳入我的帖子:

/([A-Z])(?!\1)[A-Z]\1/g

很好的解决方案,非常接近。它仍然符合AAA标准。但是这个问题可以通过一个消极的前瞻来解决:
([a-Z])(?!\1)[a-Z]\1
:)非常感谢cars10m和Paul,它对JS非常有效,但对我目前使用的mysql REGEXP函数不起作用。很抱歉没有具体说明,我将对我的问题进行编辑。它终于起作用了,关键是我需要使用双反斜杠才能在mysql中工作。非常感谢。([A-Z])(?!\\1)[A-Z]\\1很好的解决方案,非常接近。它仍然符合AAA标准。但是这个问题可以通过一个消极的前瞻来解决:
([a-Z])(?!\1)[a-Z]\1
:)非常感谢cars10m和Paul,它对JS非常有效,但对我目前使用的mysql REGEXP函数不起作用。很抱歉没有具体说明,我将对我的问题进行编辑。它终于起作用了,关键是我需要使用双反斜杠才能在mysql中工作。非常感谢。([A-Z])(?!\\1[A-Z]\\1您好,欢迎光临。有。你尝试了吗?你可能想考虑使用,它支持PCRE ReX引擎(允许你在<代码>([-Z])(?!1)[AZ] \ 1 /代码>中使用否定的前瞻性。条形是的,我尝试了其他的正则表达式,如[[AZ] ] [AZ] $。CarySwoveland谢谢你,我会说到这一点的,但我目前正在努力使“\1”部分在mysql中工作,因为它不工作。它当前正在匹配字符串“1”,而不是搜索重复。您使用的是哪个版本的MySQL?@Nick Server version:8.0.19 MySQL社区服务器-GPLHello和welcome。有。你尝试了吗?你可能想考虑使用,它支持PCRE ReX引擎(允许你在<代码>([-Z])(?!1)[AZ] \ 1 /代码>中使用否定的前瞻性。条形是的,我尝试了其他的正则表达式,如[[AZ] ] [AZ] $。CarySwoveland谢谢你,我会说到这一点的,但我目前正在努力使“\1”部分在mysql中工作,因为它不工作。它当前正在匹配字符串“1”,而不是搜索重复。您使用的是哪个版本的MySQL?@Nick服务器版本:8.0.19 MySQL社区服务器-GPL