簡體   English   中英

提取兩個冒號/特殊字符之間的子字符串

[英]Extract substring between two colons / special characters

我想從以下字符串中使用 sub() 提取“SUBSTRING”:

attribute <- "S4Q7b1_t1_r1: SUBSTRING: some explanation: some explanation - ..."

我使用了以下代碼,但不幸的是它不起作用:

sub(".*: (.*) : .*", "\\1", attribute) 

有人知道答案嗎?

您可以使用

sub("^[^:]*: ([^:]*).*", "\\1", attribute) 

查看正則表達式演示

您需要依賴否定字符類, [^:]匹配任何字符但: ,因為.*貪婪地匹配任何 0 或更多字符。 此外,您的模式在:之前包含一個空格,並且它在字符串中丟失。

細節

  • ^ - 字符串的開始
  • [^:]* - 任何 0+ 個字符,除:
  • : - 帶空格的冒號 - ([^:]*) - 捕獲組 1( \\1指此值):除 0+ 以外的任何字符:
  • .* - 字符串的其余部分。

演示

attribute <- "S4Q7b1_t1_r1: SUBSTRING: some explanation: some explanation - ..."
sub("^[^:]*: ([^:]*).*", "\\1", attribute) 
## => [1] "SUBSTRING"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM