我正在努力匹配一个以已知模式开头并以空格或字符串结尾结尾的整个单词。我想我有这个词的模式:
pat <- "https?:\\/\\/.*"
require(stringr)
str_extract("http://t.co/som7hing", pat)
# [1] "http://t.co/som7hing" # So far so good...
我不明白的是如何定义单词的边界。有四种可能的情况需要考虑:
- 我的网址在字符串的开头
- 我的网址在字符串的末尾
- 我的 URL 前面有一些其他标记
- 我的 URL 后跟一些其他令牌
在所有四种情况下,我的模式应该只匹配 URL,从头到尾。
str_extract("something something http://t.co/som7hing", pat)
# [1] "http://t.co/som7hing"
到目前为止,一切都很好...
str_extract("http://t.co/som7hing ", pat)
# [1] "http://t.co/som7hing "
第一个问题,尾随空格也匹配
str_extract("http://t.co/som7hing #hash name", pat)
# [1] "http://t.co/som7hing #hash name"
第二个问题所有尾随词都匹配