当前位置: 首页 > news >正文

网站开发+.net+开源西安专业网络推广平台

网站开发+.net+开源,西安专业网络推广平台,0453信息网免费发布,视频素材库在哪里找\b 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但…

\b 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是 \b 并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。
如果需要更精确的说法,\b 匹配这样的位置:它的前一个字符和后一个字符必须是\w (字母数字)和 \W (非字母数字),即匹配必须出现在 \w (字母数字)和 \W (非字母数字)字符之间的边界上。
\b属于匹配位置的元字符,一般作占位作用,而不被捕获,同属于匹配位置的还有匹配行起始位^和行结束位$

什么是位置

It's a nice day today.

'I' 占一个位置,'t' 占一个位置,所有的单个字符(包括不可见的空白字符)都会占一个位置,这样的位置我给它取个名字叫“显式位置”。

注意:字符与字符之间还有一个位置,例如'I''t'之间就有一个位置(没有任何东西),这样的位置我给它取个名字叫“隐式位置”。

“隐式位置”就是 \b 的关键!通俗的理解,\b 就是“隐式位置”。

此时,再来理解一下这句话:

如果需要更精确的说法,\b 匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在) \w

我用我的话来翻译一下这句话:

“隐式位置” \b,匹配这样的位置:它的前一个“显式位置”字符和后一个“显式位置”字符不全是 \w

此时,再来理解一下这句话:

如果需要更精确的说法,\b 匹配这样的位置:它的前一个字符和后一个字符不全是(一个是,一个不是或不存在) \w。

我用我的话来翻译一下这句话:

“隐式位置” \b,匹配这样的位置:它的前一个“显式位置”字符和后一个“显式位置”字符不全是 \w。

实例讲解

就用 “It’s a nice day today.” 举例说明:

正确的正则:\bnice\b

分析:第一个 \b 前面一个字符是空格,后面一个字符是 ‘n’,不全是 \w,所以可以匹配出 ‘n’ 是一个单词的开头。第二个 \b 前面一个字符是 ‘e’,后面一个字符是空格,不全是 \w,可以匹配出 ‘e’ 是一个单词的结尾。所以,合在一起,就能匹配出以 ‘n’ 开头以 ‘e’ 结尾的单词,这里就能匹配出 “nice” 这个单词。

错误的正则:a\bnice

分析:我见过有人类似于这样来写正则,想要达到的目的是匹配出上一个单词以 ‘a’ 结尾,下一个单词以 ‘n’ 开头的部分,这里想匹配出 “a nice”。但是这个正则表达的可不是这个目的,\b 前面是字符 ‘a’,后面是字符 ‘n’,两个都是“显式字符”,显然违背了 \b 的含义,所以这就是个错误的表达式,匹配不出任何东西。想要匹配出 “a nice”,正确的正则写法是:a\b.\bnice(不能换行)

MySQL 正则替换:精确匹配 “abc” 单词(使用 \b

在数据库操作中,字符串替换是一个常见的需求。MySQL 提供了正则表达式支持,可以用来实现复杂的匹配和替换操作。在某些场景下,我们需要精确匹配并替换整个单词,而不替换包含该单词的其他字符串。本文将介绍如何在 MySQL 中使用正则表达式中的 \b 来匹配单词边界,精确匹配并替换整个单词 “abc”。

问题描述

我们需要将 MySQL 表中某一列包含的单词 “abc” 替换为 “xyz”,但不替换包含 “abc” 的其他字符串(例如 “abcd”、“abc1” 等)。

创建示例表

首先,我们创建一个示例表 example_table 并插入一些测试数据:

CREATE TABLE example_table (id INT AUTO_INCREMENT PRIMARY KEY,text_column VARCHAR(255)
);INSERT INTO example_table (text_column) VALUES
('abc'),
('abcd'),
('efg abc hijkl'),
('xyz'),
('abc123'),
('123 abc 456');

使用正则表达式匹配整个单词

MySQL 8.0 及以上版本支持正则表达式中的单词边界断言 \b,我们可以利用这个断言来匹配整个单词。

使用正则表达式 \b

我们使用 \b 来匹配单词边界,正则表达式如下:

  • \babc\b

这个正则表达式的含义是:

  • \b 匹配单词边界。
  • abc 匹配字符串 “abc”。
使用 REGEXP_REPLACE 函数

MySQL 8.0 及以上版本支持 REGEXP_REPLACE 函数,该函数允许我们使用正则表达式进行替换。我们将使用 REGEXP_REPLACE 函数来替换精确匹配的单词 “abc” 为 “xyz”。

UPDATE example_table
SET text_column = REGEXP_REPLACE(text_column, '\\babc\\b', 'xyz');

这个语句将匹配到的整个单词 “abc” 替换为 “xyz”。

结果验证

执行上述 UPDATE 语句后,我们查询 example_table,查看替换结果:

SELECT * FROM example_table;

结果应为:

+----+----------------+
| id | text_column    |
+----+----------------+
|  1 | xyz            |
|  2 | abcd           |
|  3 | efg xyz hijkl  |
|  4 | xyz            |
|  5 | abc123         |
|  6 | 123 xyz 456    |
+----+----------------+

从结果可以看出,只有精确匹配的 “abc” 被替换为了 “xyz”,而包含 “abc” 的其他字符串(如 “abcd”、“abc123”)未受影响。

总结

本文介绍了如何在 MySQL 中使用正则表达式进行字符串替换,实现精确匹配整个单词 “abc” 而不影响其他包含 “abc” 的字符串。通过使用 REGEXP_REPLACE 函数和 \b 单词边界断言,我们可以灵活地进行复杂的字符串替换操作。这种方法适用于需要精确匹配和替换的场景,是在 MySQL 中处理文本数据的有效手段。

http://www.hkea.cn/news/384337/

相关文章:

  • 建设网站建设的目标百度云盘资源
  • 个体工商户是否能够做网站在线生成个人网站源码
  • 临沂高端网站建设厦门网站推广费用
  • 网站模版友链交易交易平台
  • 武汉做网站找谁百度导航是哪个国家的
  • wordpress互动游戏黄石seo诊断
  • 网页设计作品下载志鸿优化设计
  • 宾馆网站制作seminar是什么意思
  • 网站建设的进度表爱站查询工具
  • 深圳聘请做网站人员长春刚刚最新消息今天
  • 汽配人网做网站沈阳网站seo公司
  • 网站 短链接怎么做网站建设网站定制
  • 网站开发凭证做什么科目百度推广关键词多少合适
  • 网站正在建设 h5模板新闻热点
  • 龙岗公司网站建设怎么上百度搜索
  • 七米网站建设网站自动推广软件免费
  • 余姚公司做网站跨境电商怎么做
  • 顺义哪有做网站厂家百度快照在哪里找
  • 深圳南山网站建设重庆seo黄智
  • 教育微网站建设我要学电脑哪里有短期培训班
  • 民宿预订网站制作推广方案怎么做
  • 做网站都要掌握什么网页模版
  • 网站怎么做qq微信登陆长沙优化网站哪家公司好
  • 为什么上不了建设银行个人网站漳州网络推广
  • 天津手机网站建站培训代运营公司可靠吗
  • 网站制作的一般步骤长春网站优化平台
  • Python做网站 性能上海seo培训中心
  • 网上投诉平台公众号排名优化
  • 网页模板网站推荐媒体公关是做什么的
  • 泰安的网站建设公司爱站网域名查询