我正在阅读Peter Cooper的书“Beginning Ruby”,我对一些字符串方法和正则表达式的使用有一些疑问。我想我很清楚正则表达式是什么:“描述匹配其他字符串中元素的模式的字符串”。Ruby正则表达式和括号。括号做什么?
所以:
"This is a test".scan(/\w\w/) {|x| puts x}
Output:
Th
is
is
te
st
=> "This is a test"
- 所以在一次打印两个字符。我没有意识到它也会返回原始字符串。为什么是这样?
此外,
"This is a test".scan(/[aeiou]/) { |x| puts x }
- 什么括号做什么?我认为他们被称为人物类,但我不确定他们做了什么。 Cooper书中的解释并不完全冗长和清晰。
字符类的说明:
“你需要在这个阶段,了解正则表达式的最后一个重要的方面是 字符类这允许你来匹配特定的字符集为。例如,您可以扫描字符串中的所有元音:“
字符类匹配单个字符,如果字符类包含的字符。例如。 '[aeiou]'将匹配'a','e','i','o'或者'u'中的任何一个。所以第二个命令的输出应该是“我”,“我”,“一个”,“e”。 – 2014-10-03 21:12:22
http://ruby-doc.org/core-2.1.3/Regexp.html – 2014-10-03 21:13:11
你会想看看这个:http://rubular.com/在快速参考部分甚至有字符类的例子。 – orde 2014-10-03 21:53:31