Ruby 正则表达式
正则表达式 是一个定义搜索模式的字符序列,主要用于字符串的模式匹配。Ruby正则表达式即Ruby regex的简称,可以帮助我们在字符串中找到特定的模式。Ruby regex的两个用途是验证和解析。Ruby regex也可以用来验证一个电子邮件地址和一个IP地址。Ruby regex表达式是在两个正斜杠之间声明的。
语法
如果存在’hi’这个词,这将返回该词第一次出现的索引,否则将返回 ‘nil ‘。
检查一个字符串是否有一个regex
我们也可以通过使用 match 方法来检查一个字符串是否有一个regex。下面的例子可以让我们理解。
例子:
输出
检查一个字符串是否有一些字符集
我们可以使用一个 字符集 s,让我们定义一个字符范围进行匹配。例如,如果我们想搜索元音,我们可以使用 [aeiou] 进行匹配。
例子 :
输出
不同的正则表达式
有不同的简短表达式用于指定字符范围。
- \ w 相当于 [0-9a-zA-Z_ ] 。
- \d与 [0-9] 相同
- \` s 匹配 白色空间
- \ W 任何 不在[0-9a-zA-Z_]中 的东西。
- \ D 任何不属于数字的东西
- \ S 任何 不是空格 的东西
- 点字符 … 匹配所有内容,但不匹配新行。如果你想搜索 . 字符,那么你必须转义它。
例子 :
输出
雷格斯的修饰语
对于匹配多个字符,我们可以使用修饰语。
- + 是指 1个或更多的 字符
- ***** 是指 0个或更多的 字符
- ? 是指 0或1个字符
- {x, y} 如果是指 x和y之间的字符数
- i 是指在匹配文本时忽略大小写。
- x 表示忽略空格,允许在正则表达式中使用注释。
- m 表示匹配多行,将换行符作为正常字符识别。
- u,e,s,n 表示将正则表达式解释为Unicode (UTF-8), EUC, SJIS, 或ASCII。