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值?