如果内部有超过1个单词,我正在尝试使用正则表达式来获取括号内的最后一个单词。在所有情况下都是Baz
! KEYWORD (\Foo \Bar \Ban \Baz) "/" "Hello"
! KEYWORD (\Foo \Bar \Baz) "/" "Hello"
! KEYWORD (\Foo \Baz) "/" "Hello"
由于
答案 0 :(得分:4)
一种可能性是
.*\W(\w+)\s*\)
解释
.* #1 runs to the end of the string
\W #2 backtracks to a non-"word character"
(\w+) #3 captures all following "word characters" into group 1
\s* #4 optional white space
\) #5 mandatory literal closing paren
这个正则表达式有效,因为它主动使用回溯来查找字符串中“最后一次出现的东西”(即重复步骤#2直到表达式的其余部分匹配 - 或整个表达式失败)。
在这种情况下,某事是一系列单词字符,前面是非单词字符,后跟一个结束语。