[英]Extracting numbers from string in R using regex
我有一個像這樣的字符串:
myString <- "[0.15][4577896]blahblahblahblahwhatever"
我需要提取第二個括號之間的數字。
目前,我正在嘗試使用此功能:
str_extract(myString, "\\]\\[(\\d+)")
但這給了我][4577896
我想要的結果是: 4577896
我怎樣才能做到這一點?
無需回頭
gsub(".*\\[(\\d+).*","\\1",myString)
[1] "4577896"
你可以試試看。 (?<=\\]\\[)(\\d+)
這是一個演示。 https://regex101.com/r/fvHW05/1
這是帶有最小或沒有正則表達式的另一個版本
qdapRegex::ex_between_multiple(myString, "[", "]")[[2]]
#[1] "4577896"
它提取[
和]
之間的所有子字符串,然后選擇第二個括號之間的值。 您可以根據需要將其轉換為數字或整數。
您可以使用
^(?:[^\[\]]*\[[^\[\]]+\])[^\]\[]*\[([^\]\[]+).+
並使用gsub
將其替換為第一個捕獲的組,請參見regex101.com上的演示 。 在基數R
:
myString <- "[0.15][4577896]blahblahblahblahwhatever"
pattern <- "^(?:[^\\[\\]]*\\[[^\\[\\]]+\\])[^\\]\\[]*\\[([^\\]\\[]+).+"
gsub(pattern, "\\1", myString, perl = T)
# [1] "4577896"
使用str_extract
的選項
library(stringr)
str_extract(myString, "(?<=.\\[)([0-9]+)")
#[1] "4577896"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.