我的管道分隔下面有以下数据。
ABC|12345|H|QWA|**X**|DFC-FED| MULTIPLE ENTRY
PQR|67890|D|WAS|||**Y**|OKA| UPDATE
XYZ|34567|V|**Z**|SDC| QUESTION
ASD|23412|G|QAS|||**Y**|BUT| DELETE
AFD|65432|H|**X**|AVB| QUESTION
我想找到并提取管道分隔中存在的X,Y和Z(例如:| X |,| Y |,| Z |)。这里的挑战是它们并不存在于每个记录的相同位置。
我的输出应该是。
X
Y
Z
Y
X
答案 0 :(得分:1)
使用sub,
sub(".*(^|\\|)([XYZ])(\\||$).*", "\\2", x)
或
如果它应出现在两个管道|x|
内,那么您可以使用以下正则表达式。
sub(".*\\|([XYZ])\\|.*", "\\1", x)