mySQL Regexp with square brackets
我正在尝试在mysql的列中匹配类似'[sometext
这个查询没有收到错误,但它返回了我不想要的东西。我要的不是(.+),而是[^](匹配除右方括号外的所有内容)。更改查询时,出现以下错误:"get error"repetition operator operand invalid"from regexp"
在阅读完mysql文档后,它声明"要包含一个文本]字符,它必须紧跟在左括号["后面,因为我想要"^]"而不是"]",这是不是可能的,因为括号不能是左括号之后的第一个字符?下面是我尝试过的一些查询,它们得到上面列出的相同错误:
1 2 3 |
更新:
以下查询运行时没有错误,但不会返回任何行,即使我知道有与我要查找的内容相匹配的列(基于顶部的原始查询):
这对我很有用:
1 |
最后一个regex看起来是正确的,一旦斜线被取消,它就可以在firefox/js中工作。但看起来MySQL不支持本机捕获组…也许这就是问题所在。
也许这会有用:http://mysqludf.com/lib_mysqludf_preg/
另外,您可以尝试使用*而不是+?为你的否定直角。
*表示0次或更多次重复(贪婪)+?表示1次或多次重复(懒惰)