Tom*_*oli 5 ruby regex hashtag
我正在为facebook写一个hashtag scraper,而我遇到的每个正则表达式都包含标点符号以及字母数字字符.这是我想要的一个例子:
你好,世界!我是#m4king #fac_book scraper,想要一个很好的常规#expression.
我想它来搭配world,m4king,fac和expression(注意,我想它切断如果达到标点符号,包括空格).如果它不包含哈希符号会很好,但它并不是非常重要.
只是重要的是,我将使用ruby的字符串扫描方法来获取多个标签.
谢谢你提前!
小智 6
str = 'Hello #world! I am #m4king a #fac_book scraper and would like a nice regular #expression'
str.scan(/#([A-Za-z0-9]+)/).flatten #=> ["world", "m4king", "fac", "expression"]
Run Code Online (Sandbox Code Playgroud)
需要调用#flatten,因为每个捕获组都在其自己的数组中.
或者,您可以使用仅在'#'后匹配字母数字字符的后视匹配:
str.scan /(?<=#)[[:alnum:]]+/ #=> ["world", "m4king", "fac", "expression"]
Run Code Online (Sandbox Code Playgroud)