gpt4 book ai didi

mysql - 正则表达式到 SQL : repetition-operator operand invalid

转载 作者:行者123 更新时间:2023-11-28 23:59:25 24 4
gpt4 key购买 nike

我正在尝试使用正则表达式来检测表格所有行中的 URL,这是正则表达式

\b(([\w-]+:\/\/?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/)))

但是,我总是会遇到“重复运算符操作数无效”错误,在 Internet 上搜索了几个小时之后,该错误仍然模糊不清。我哪里出错了?我该怎么做才能解决这个问题?或者,是否有比 Regex 更好的方法来检测 SQL 消息中的 URL?

谢谢。

最佳答案

您不能使用 ? MySQL regex 中的量词因为语法是基于 POSIX 的。不过,您可以使用 *匹配 0 个或多个字符。另外,\b在 MySQL 正则表达式中应替换为 [[:<:]] (因为这在单词的开头匹配)。

因此,我建议使用

[[:<:]](([a-zA-Z0-9-]+:\/\/*|www[.])[^ ()<>]+(\([a-zA-Z0-9_]+\)|([^ [:punct:]]|\/)))

我正在扩展\w[a-zA-Z0-9_]因为它正是\w是。而不是 \s ,我使用的是文字空间。而不是 \d , 我正在使用 [0-9] .这样做是为了提高可读性和更好的兼容性。如果\w , \d\s为你工作,你可以使用它们,但我在 POSIX specs 的受支持实体中看不到它们.

此外,您可以使用 [:space:] 而不是文字空间,它匹配空格、制表符、换行符和回车符。而不是 [a-zA-Z]你可以使用 [:alpha:] , 而不是 [0-9] , 你可以使用 [:digit:] .另请检查:

[[:<:]](([[:alpha:][:digit:]-]+:\/\/*|www[.])[^[:space:]()<>]+(\([[:alpha:][:digit:]_]+\)|([^[:space:][:punct:]]|\/)))

关于mysql - 正则表达式到 SQL : repetition-operator operand invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30436545/

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