如:
http://www.domain.com/junk/target/keyword/junk
我正试图从上面的url中提取单词“target”。
到目前为止,我有以下表达式:
(?=\/).*?(?=\/keyword\/)
但是,这会从第一个斜杠('//www.domain.com/junk/target')中提取所有内容
最佳答案
您可以使用
%r{/([^/]+)/keyword/}
请参见Rubular demo(注意,如果
keyword
可能出现在字符串末尾,则需要在末尾添加一个替换项-%r{/([^/]+)/keyword(?:/|\z)}
)。您需要的值在组1内。
Ruby demo
lnk[%r{/([^/]+)/keyword/}, 1]
图案说明:
/
-斜线([^/]+)
-捕获与/
以外的一个或多个字符匹配的组1/keyword/
-文字/keyword/
子字符串。关于ruby-on-rails - 正则表达式:在URL中的斜杠和匹配关键字之间找到单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42237515/