我对regex不是很在行,所以谢谢你的帮助。
我需要解析一个字符串,比如“请我去吃午饭”来提取大写的单词。我在用鲁比。
所以我需要一些
string = "sign me up for LUNCH"
keyword = string.gsub(/some_rexex/, '')
# keyword should == 'LUNCH'
再次感谢你的帮助
最佳答案
使用string.scan
函数而不是string.gsub
获取所需的特定字符串。
> "sign me up for LUNCH".scan(/\b[A-Z]+\b/)[0]
=> "LUNCH"
\b
匹配单词字符和非单词字符的被称为单词边界。或
> "sign me up for LUNCH".scan(/(?<!\S)[A-Z]+(?!\S)/)[0]
=> "LUNCH"
(?<!\S)
负lookbehind,它断言匹配前面不会有非空格字符。[A-Z]+
匹配一个或多个大写字母。(?!\S)
否定的lookahead,它断言匹配后面不会跟非空格字符。