正则表达式快速入门

今有一文:

哔哩哔哩,又名Bilibili,简称B站,前身为mikufans。B站从近几年开始增加了直播版块,很多著名UP主摇身一变,又成为了著名主播。粉丝为了支持主播,可以用金瓜子和银瓜子购买“虚拟道具”赠送给主播。不是所有瓜子都具有相同的效力;金瓜子所购买的道具可以拆算为主播的收入……

如果想在一段文字中搜索“金瓜子”与“银瓜子”所出现的位置,那么按照单一关键词进行搜索的话,需要按“金瓜子”与“银瓜子”各进行一次搜索。所需要搜索的关键词越丰富,单一关键词搜索越难以满足搜索的需求。如果只搜索“瓜子”,那么除了“金瓜子”与“银瓜子”,你还会搜到单纯的“瓜子”。

那么,怎么办呢?正则表达式检索(Regex search)可来救场!只要正则表达式写对,就可以在单次搜索待检内容的同时,避免无关内容乱入。

简要教程:

如果只想搜索“金瓜子”与“银瓜子”,那么对应的表达式为:

(金瓜子银瓜子)

解释:一对半角圆括号表示一个“捕捉组”,而竖线表“或”的关系。

如果不在意捕捉的内容,只在意搜索“金瓜子”与“银瓜子”,那么还可以用:

(金银)瓜子

解释:只会搜索前面紧连“金”与“银”的“瓜子”,即“金瓜子”与“银瓜子”

以上正则表达式还可以写作:

[金银]瓜子

解释:半角方括号中的字,只要有一个出现在“瓜子”前即可成功检索。

如果想检索到233、2333、23333,而不匹配到23、233333、2333333等,只需使用:

23[^3]

解释:表示前面的单个字符“3”允许出现2至4次,而[^3]表示其后可以跟一切不是“3”的字符(“^"表示半角方括号中其余的字符都不能出现),也可以不跟字符。

如果想检索10(含)到99(含)之间的两位数,只需使用:

[1-9][0-9]

如果想检索半角圆括号(“(”、“)")、半角方括号(“[”、“]”)、反斜线(“\”)、半角花括号(“{”、“}”)、半角竖线(“”)、半角问号(“?”)、半角星号(“*”)、半角脱字符(“^”)、半角美元符号“$”、半角横线(“-”),那么这些符号前面都需要加表示“转义”的反斜线(“\”)。例如,要检索“(yes)”和“(no)”,只需使用:

\((yesno)\)

解释:“\(”检索“(”,“(yesno)”检索“yes”或“no”,“\)”检索“)”。

未完——若有其他解释需求,请留言到后台。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180104G0CGBX00?refer=cp_1026

扫码关注云+社区