mysql regexp边界_MySQL REGEXP字边界[[:<:]] [[:>:]]和双引号

让我先说一下

documentation:

[[:<:>:]]

These markers stand for word boundaries. They match the beginning and

end of words, respectively. A word is a sequence of word characters

that is not preceded by or followed by word characters. A word

character is an alphanumeric character in the alnum class or an

underscore (_).

从文档中我们可以看到问题背后的原因,并不是由于逃避而造成的.问题是你试图在字符串的开头处匹配单词boundary [[:&lt ;:]],这将无法正常工作,因为你可以从文档中看到的单词边界将单词字符与非单词字符分开-word字符,但在你的情况下,第一个字符是“不是单词字符,所以没有单词边界,最后一个”和[[:>:]].

为了使其工作,您需要将表达式稍微更改为此表达式:

"[[:<:>:]]"

^^^^^^^ ^^^^^^^

注意单词边界如何将非单词字符“与开头的单词字符w和字符串末尾的d”分开.

编辑:如果您总是希望在字符串的开头和结尾使用单词边界而不知道是否存在实际边界,那么您可以使用以下表达式:

([[:<:>:]]|$)

这将匹配开头的字边界或字符串的开头^,并且对于字边界或字符串结尾的结尾相同.我真的建议你研究你想要匹配的数据并寻找常见的模式,如果它们不是正确的工具,就不要使用正则表达式.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值