select regexp_substr('xxxxxxxabc[867]xxx[-]xxxxxx[5309]xxxxxx','[^][]+',1,1)
以上的正则表达式'[^][]+',啥意思?
不是[和]的至少一个的其它字符? ^是作用其后的][吗?
[0-9]+ 至少一位数字-------->[^0-9]+ 非数字的至少一个字符
[^][] 分解成 ^][,即不能是][
按照你说的,不能是][,等同于 不能是[];我改写成
select regexp_substr('xxxxxxxabc[867]xxx[-]xxxxxx[5309]xxxxxx','[^[]]+',1,1) from dual;
为啥结果不一样?
没有什么意思,表达式错误。
但估计他是想写除去[]的表达式。所以正确的应该是‘ [^\]\[]+ ’
换成你转译后的中括号,并不能得到正确结果。
@林豪桀: 当然得不到,因为你的位置是1,1那匹配是0.
官方定义:
所以你要先弄得select regexp_substr的截取规则。
不过鄙人是学前端的,你这个浴盐语法不懂,但是正则表达在所有的编程语言语法基本上是相同的。
这逼装的酸爽。哈哈
@张云山: 说好的一起装逼,都让你装了 O(∩_∩)O哈哈哈~
@林豪桀: 哈哈~~一起呀