Ruby 教程 之 Ruby 正则表达式 3

简介: Ruby 正则表达式

Ruby 教程 之 Ruby 正则表达式 3

Ruby 正则表达式

正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹配或查找字符串集合。

正则表达式用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

正则表达式模式

除了控制字符,(+ ? . * ^ $ ( ) [ ] { } | ),其他所有字符都匹配本身。您可以通过在控制字符前放置一个反斜杠来对控制字符进行转义。

下表列出了 Ruby 中可用的正则表达式语法。

模式 描述
^ 匹配行的开头。
$ 匹配行的结尾。
. 匹配除了换行符以外的任意单字符。使用 m 选项时,它也可以匹配换行符。
[...] 匹配在方括号中的任意单字符。
[^...] 匹配不在方括号中的任意单字符。
re* 匹配前面的子表达式零次或多次。
re+ 匹配前面的子表达式一次或多次。
re? 匹配前面的子表达式零次或一次。
re{ n} 匹配前面的子表达式 n 次。
re{ n,} 匹配前面的子表达式 n 次或 n 次以上。
re{ n, m} 匹配前面的子表达式至少 n 次至多 m 次。
a| b 匹配 a 或 b。
(re) 对正则表达式进行分组,并记住匹配文本。
(?imx) 暂时打开正则表达式内的 i、 m 或 x 选项。如果在圆括号中,则只影响圆括号内的部分。
(?-imx) 暂时关闭正则表达式内的 i、 m 或 x 选项。如果在圆括号中,则只影响圆括号内的部分。
(?: re) 对正则表达式进行分组,但不记住匹配文本。
(?imx: re) 暂时打开圆括号内的 i、 m 或 x 选项。
(?-imx: re) 暂时关闭圆括号内的 i、 m 或 x 选项。
(?#...) 注释。
(?= re) 使用模式指定位置。没有范围。
(?! re) 使用模式的否定指定位置。没有范围。
(?> re) 匹配无回溯的独立模式。
\w 匹配单词字符。
\W 匹配非单词字符。
\s 匹配空白字符。等价于 [\t\n\r\f]。
\S 匹配非空白字符。
\d 匹配数字。等价于 [0-9]。
\D 匹配非数字。
\A 匹配字符串的开头。
\Z 匹配字符串的结尾。如果存在换行符,则只匹配到换行符之前。
\z 匹配字符串的结尾。
\G 匹配最后一个匹配完成的点。
\b 当在括号外时匹配单词边界,当在括号内时匹配退格键(0x08)。
\B 匹配非单词边界。
\n, \t, etc. 匹配换行符、回车符、制表符,等等。
\1...\9 匹配第 n 个分组子表达式。
\10 如果已匹配过,则匹配第 n 个分组子表达式。否则指向字符编码的八进制表示。

目录
相关文章
|
缓存 负载均衡 安全
正向代理和反向代理
本文详细介绍了代理和反向代理的概念及应用场景。代理作为一种中间人服务,可细分为正向代理与反向代理。前者位于客户端与网络间,有助于匿名浏览、访问控制、缓存加速及增强安全性;后者则位于网络与服务器间,主要用于负载均衡、缓存、安全性提升、SSL终止及内容过滤等。两者各有侧重,可根据具体需求选择使用。例如,Squid 是常用的正向代理框架,而 Nginx 则常用于反向代理。了解并合理运用两者,能有效提升网络性能与安全性。
1737 4
|
机器学习/深度学习 缓存 自然语言处理
从头开始构建 Transformer: 注意力机制
从头开始构建 Transformer: 注意力机制
1028 0
|
安全 JavaScript 前端开发
深入解析crypto.getRandomValues():JavaScript中的高安全性随机数生成
深入解析crypto.getRandomValues():JavaScript中的高安全性随机数生成
1285 0
|
人工智能 算法 C语言
C语言实验六 一维数组程序设计
C语言实验六 一维数组程序设计
598 0
|
机器学习/深度学习 数据可视化 计算机视觉
NeurIPS 2022 | 一句话让三维模型生成逼真外观风格,精细到照片级细节
NeurIPS 2022 | 一句话让三维模型生成逼真外观风格,精细到照片级细节
346 0
|
搜索推荐 算法 Java
ACM教程 - 选择排序
ACM教程 - 选择排序
366 0
ACM教程 - 选择排序
人工智能 缓存 前端开发
11835 60
人工智能 JavaScript 开发工具
4754 17