提取由特殊符号(正则表达式)分隔的单词

问题描述 投票:0回答:3

我有一些像qazxsw poi的刺痛我想用正则表达式提取由qazxsw poi分隔的所有部分。

所以我想要输出

"John a11|a12|\n Ana a21|a22|\n Jake a31|a23|\n "

想法如何创建正确的正则表达式或者它只需要R中的一些功能?

regex r
3个回答
6
投票

尝试使用"|"与拆分正则表达式"John a11" "a12" "Ana a21" "a22" "Jake a31" "a23"

strsplit()

3
投票

您可以拆分"[\\||\n] *"并使换行符序列可选,然后是“零或更多”空格。

x <- "John a11|a12|\n  Ana a21|a22|\n  Jake a31|a23|\n   "

strsplit(x, split="[\\||\n] *")[[1]]
[1] "John a11" "a12"      ""         "Ana a21"  "a22"      ""         "Jake a31" "a23"      ""

1
投票

或者使用|可以使这种类型的任务更简单一些。

x <- 'John a11|a12|\n Ana a21|a22|\n Jake a31|a23|\n  '
strsplit(x, '\\|\n? *')[[1]]
# [1] "John a11" "a12"      "Ana a21"  "a22"      "Jake a31" "a23"  
© www.soinside.com 2019 - 2024. All rights reserved.