-2
假設我有一個字符串,像這樣:[R正則表達式的數字,後跟標點符號
x <- "i2: 32390. 2093.32: "
我怎麼會回來,這將使我在哪裏了一些後面跟着:
或的位置的矢量.
後跟一個空格?
因此,對於這個字符串這將是
"2: ","0. ","2: "
假設我有一個字符串,像這樣:[R正則表達式的數字,後跟標點符號
x <- "i2: 32390. 2093.32: "
我怎麼會回來,這將使我在哪裏了一些後面跟着:
或的位置的矢量.
後跟一個空格?
因此,對於這個字符串這將是
"2: ","0. ","2: "
您所需要的正則表達式就是'\\d[\\.:]\\s'
。使用stringr
的str_extract_all
快速提取匹配:
library(stringr)
str_extract_all("i2: 32390. 2093.32: ", '\\d[\\.:]\\s')
產生
[[1]]
[1] "2: " "0. " "2: "
你可以使用它的r內置函數,它應該正常工作,以及。
什麼它匹配:
\\d
數字,即數字[ ... ]
設置字符的範圍,以匹配相匹配
\\.
相匹配的週期:
冒號匹配\\s
與空格相匹配。
確實。儘管如此,我想保持它的基本性,並且不管上下文如何都逃離了這段時間。 – alistaire
或使用基址'regmatches(x,gregexpr(「\\ d [:。] \\ s」,x))' –
也是如此。我不確定原來是想要匹配任何空間還是隻是「」; ''\\ d [:.]''會比較窄。 – alistaire