在正则表达式的匹配模式里面,我们可以根据需求把它切分成一些群组,群组可以让复杂的模式更容易读懂,你可以单独为每个群组应用不同的操作,而且群组里的匹配可以被记住,稍后我们可以继续利用被记住的匹配的内容 ...
在模式里定义一个群组可以使用一组括号 .. 它里面可以嵌套群组,可以包含其它的匹配模式 .. 比如我想匹配的是内容里的 rails 或者 ruby on rails .. 这样我们可以把 ruby on 单独放在一个群组里面,然后给这个群组应用一个可选的操作 .. 符号是 ? 号 .. 后面再加上一个 rails ..
你会看到,现在匹配的东西就是 rails ... 还有 ruby on rails ..
再试一个例子 .. 添加几个图像文件名的内容 ... 现在我要匹配的就是内容出现的所有的图像文件名 .. 先匹配文件名前面这部分内容 .. 用一个字符集 .. a-zA-Z0-9 还有下划线 .. 它有一个简单的形式,就是 \w ..
.. 字符集里的东西至少要出现一次,也可以是多次 .. 在它后面用一个 + 号 .. 然后匹配的是文件名里的点 .. 点有特别的意思,所以你想匹配它的话要在它前面用一个转义符 .. 然后是一个点 ...
最后要匹配的是图像文件的扩展名 .. 它可以是 png,jpg,或者 gif ... 这里我们可以使用一个群组 ... 一组括号 .. 然后是 png 竖线 .. 这个竖线表示或者 ... jpg 竖线 gif ...
现在匹配的结果就是 png,jpg,gif 格式的图像文件名 ...