2017-09-25 29 views
3

我的文字,看起來像:提取第三之間的所有文字持續和去年同期

txt <- Name, Name. Title. Pub. Year; Details. 

我想只提取酒吧。

gsub(".*\\.(.*)\\..*", "\\1", txt) 

如何提取第三之間的一切到最後,二來R中最後一期(只PUB):

我可以使用一年提取和細節?

回答

3

您可以使用sub(因爲你需要執行一個單一的搜索和替換操作)的方式如下:

txt <-"Name, Name. Title. Pub. Year; Details." 
sub(".*\\.([^.]*)(?:\\.[^.]*){2}$", "\\1", txt) 
# => [1] " Pub" 

R demo

詳細

  • .* - 任何0+字符,儘可能多的
  • \\. - 一個.
  • ([^.]*) - 第1組:任何0+比.
  • (?:\\.[^.]*){2}其他字符 - 2個連續序列的
    • \\. - 一個.
    • [^.]* - 串的端部 - 的任何0+比.
  • $其他字符。
+0

請參閱本[在線正則表達式演示](https://regex101.com/r/wUSaPo/1)。 –

相關問題