regex 正则表达式查找两个连续的特殊字符,没有硬编码

mctunoxg  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(121)

我试图在Spark SQL中找到一个正则表达式,以确定一个字符串是否包含两个或更多连续的特殊字符,而无需任何硬编码。我能够做到这一点,但有regex的硬编码。如果我有这样的组合的话,这是行不通的。
rlike(Column_name,'/.*!!.*|.*@@.*|.*##.*|.*$$.*|.*%%.*|.*\\^\\^.*|.*&&.*|.*\\*\\*.*|.*((.*|.*)).*|.*--.*|.*__.*|.*\\+\\+.*|.*==.*|.*\\{\\{.*|.*[[.*|.*]].*|.*\\}\\}.*|.*\\.*|.*||.*|.*::.*|.*;;.*|.*"".*|.*,,.*|.*<<.*|.*>>.*|.*...*|.*\\?\\?.*|.*\/\/.*|.*- -.*/gm')
显然,这是在我们知道可能出现的连续字符列表时编写的。但是我们现在有一个情况,组合可以是任何东西。有没有一种方法可以在没有任何硬编码的情况下获得这种动态?
特殊特性:除a-zA-Z 0 -9以外的任何字符

jum4pzuy

jum4pzuy1#

正如@markalex在评论中建议的那样,([^a-zA-Z0-9])\1将完成这项工作。

[^a-zA-Z 0 -9]->匹配单个特殊字符
\1->与第一个捕获组匹配相同的文本

查看here

相关问题