Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 正则表达式匹配字符串中的精确数字,不带前向或后向_Mysql_Regex_Mysql 5.7 - Fatal编程技术网

Mysql 正则表达式匹配字符串中的精确数字,不带前向或后向

Mysql 正则表达式匹配字符串中的精确数字,不带前向或后向,mysql,regex,mysql-5.7,Mysql,Regex,Mysql 5.7,假设我正在寻找一个带有换行符的字符串中的特定数字: 1\n2\n4\n5\n7\n8\n9\n12\n13 Lookahead和Lookahead与以下内容完美配合: (?<![0-9])12(?![0-9]) 看 但是,我需要一个MySQL REGEXP的解决方案,因为它不支持带有lookarounds的模式。If?适用于在线正则表达式引擎,以下正则表达式必须适用于基于POSIX的正则表达式模式: ^|[^0-9]12$|[^0-9] 或者,您可以使用单词边界: [[:<:]]1

假设我正在寻找一个带有换行符的字符串中的特定数字: 1\n2\n4\n5\n7\n8\n9\n12\n13

Lookahead和Lookahead与以下内容完美配合:

(?<![0-9])12(?![0-9])

但是,我需要一个MySQL REGEXP的解决方案,因为它不支持带有lookarounds的模式。

If?适用于在线正则表达式引擎,以下正则表达式必须适用于基于POSIX的正则表达式模式:

^|[^0-9]12$|[^0-9] 或者,您可以使用单词边界:

[[:<:]]12[[:>:]]

详情:

^|[^0-9]-字符串或非数字字符的开头 [[::]]-尾随单词边界 $|[^0-9]-字符串结尾或非数字。 对于MySQL 8.0

"\\b12\\b"

前者检查单词边界,可能更好。后者检查空白,例如\n


根据客户端的不同,双反斜杠可能有点过分。

MySQL版本是什么?您确定字符串中的换行符不是换行符吗?事实上,该换行符是在Joomla表单的复选框组中进行不同选择的结果!Pro窗体并在sql字段值中产生换行符。MySQL版本5.7.31我的查询Joomla为$i=0$isetQuerySELECT从uuu rsform_usubmission_u值中选择COUNT*,其中FormId='.JRequest::getInt'FormId.'和FieldName='plages'和FieldValue REGEXP.$i+1。[[:>:]]。。。。。但是REGEXP将无法处理像1\n12这样的结果……查找2将捕获12中的2抱歉,我的意思是^ |[^0-9]12$|[^0-9]。
"\\s12\\s"