我正在尝试使用子功能将包裹编号与混乱的字符串变量隔离。包裹中的包裹号由前面的“ParNum”标识:所需号码周围的字符有所不同,但是它们遵循这两个示例的一般形式。
string1 <- "Legal Description: PrpId:0511552031 ParNum:0511552031 CC:05 T:7 R:8"
string2 <- "Legal Description: Rmrk:PT OF PrpId:0511552031 ParNum:0511552031 CC:05 T:7 R:8"
失败失败的努力:
> sub("[^:]*:)*[^:]*:", "", string1)
[1] "0511552031 ParNum:0511552031 CC:05 T:7 R:8"
所需结果:
0511552031
最佳答案
尝试对sub
使用以下模式:
.*ParNum:([^[:blank:]]*).*
这匹配
ParNum:
,然后捕获ParNum:
后面的所有非空格/制表符。然后,在第一个捕获组中将捕获的号码作为\\1
可用。程式码片段:
string1 <- "Legal Description: PrpId:0511552031 ParNum:0511552031 CC:05 T:7 R:8"
sub(".*ParNum:([^[:blank:]]*).*", "\\1", string1)
[1] "0511552031"
Demo