one: re = Regexp.new("Ruby")
two: re = /Ruby/
three: re = %r(Ruby)、%r<Ruby>、%r|Ruby|、%r!Ruby!
one: 模式 ~= 字符串
two: 模式 != 字符串
| 普通字符 | /Ruby/ | |
|---|---|---|
| 行首/末 | ^ $ | 元字符 |
| 字符串首/末 | \A \z | 元字符 |
| 指定匹配范围 | [a-z] | a 到 z 字符 |
| [^a-z] | a 到 z 以外字符 | |
| 匹配符 | . | 匹配任意字符 |
| /^.&/ | 匹配字符数为 1 的行 | |
| \s | 空白符,匹配空格、制表符、换行符、换页符 | |
| \d | 匹配 0~9 | |
| \w | 匹配英文字母与数字 [a-zA-Z_0-9] | |
| 转义 | \ | |
| * | 重复 0 次或更多次 | |
| + | 重复 1 次或更多次 | |
| ? | 重复 0 次或 1 次 | |
| *? | (重复 0 次或更多次) 重复中最短部分 | |
| +? | (重复 1 次或更多次) 重复中最短部分 | |
| () | 重复匹配 | |
| | | 候补任选 | |
| quote | 转义正则表达式中所有元字符 | |
| /x/ i | 忽略英文字母大小写 | |
| /x/ x | 忽略空白符及#后面字符 (方便写注释) | |
| /x/ m | 可用。匹配换行符 | |
| () | 捕获 ($n获取相对应的值) | |
| (?:) | 过滤不需要捕获的值 |
/(.)(\d\d)+(.)/ =~ "1234567" 与/(.)(\d\d)+/ =~ "1234567" $1 $2 $3值的区别?
/(.)(?:\d\d)+(.)/ =~ "123456" $1 $2 $3值?