我对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,它断言匹配后面不会跟非空格字符。

10-06 01:55