[英]R regex: split a string by combination of \\n [A-z] & [:punct:]
我有一個帶有如下字符串的數據框:
bla bla.\n14:39:51 info: pyku bla .\n14:39:51 info: \n14:39:51 info: \n14:39:57 Sam: <span>pyk pyk</span>\n14:43:15 on and on \n14:43:59 you get an idea
我想將由\\n(number):(number):(number)
序列分隔的行拆分為不同的行。 我試過了
stringr::separate_rows(df3$Transcript[1], Transcript , sep = "\\n")
以及與[Az]
和[:punct:]
不同組合均無濟於事。 最直接的方法是什么?
謝謝
您想用換行符分割字符串,然后再加上時間戳。 您可以基於正向前瞻將基數R strsplit
函數與PCRE正則表達式一起使用:
strsplit(s, "\\R+(?=\\d{2}:\\d{2}:\\d{2})", perl=TRUE)
圖案細節
\\R+
-1個或多個換行符序列( \\n
或\\r
或\\r\\n
) (?=\\d{2}:\\d{2}:\\d{2})
-后跟2位數字:
,2位數字:
和2位數字。 由於(?=...)
是一個正向超前(零寬度斷言,不會將匹配的字符放入匹配值),因此與之匹配的文本不會從結果中刪除。 R演示 :
s <- "bla bla.\n14:39:51 info: pyku bla .\n14:39:51 info: \n14:39:51 info: \n14:39:57 Sam: <span>pyk pyk</span>\n14:43:15 on and on \n14:43:59 you get an idea"
strsplit(s, "\\R+(?=\\d{2}:\\d{2}:\\d{2})", perl=TRUE)
輸出:
[[1]]
[1] "bla bla." "14:39:51 info: pyku bla ."
[3] "14:39:51 info: " "14:39:51 info: "
[5] "14:39:57 Sam: <span>pyk pyk</span>" "14:43:15 on and on "
[7] "14:43:59 you get an idea"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.