【发布时间】:2020-04-09 22:14:27
【问题描述】:
在使用字符串提取两个字符之间的字符串时遇到问题。我需要获取这些字符之间的所有内容,包括换行符:
reprEx <- "2100\n\nELECTRONIC WITHDRAWALS| om93 CCD ID: 964En To American Hon\nELECTRONIC WITHDRAWALSda Finance Corp 295.00\nTotal Electronic Withdrawals $93,735.18\n[OTHER WITHDRAWALS| WITHDRAWALS\nDATE DES $93,735.18\n[OTHER WITHDRAWALS| WITHDRAWALS\nDATE DESCRIPTION AMOUNT\n04/09 Pmt ID 7807388390 Refunded IN Error On 04/08"
desiredResult <- "| om93 CCD ID: 964En To American Hon\nELECTRONIC WITHDRAWALSda Finance Corp 295.00\nTotal Electronic Withdrawals $93,735.18\n[OTHER WITHDRAWALS| WITHDRAWALS\nDATE DES $93,735.18\n["
我尝试过使用:
desiredResult <- str_match(reprEx, "ELECTRONIC WITHDRAWALS\\s*(.*?)\\s*OTHER WITHDRAWALS")[,2]
但我只是让 NA 回来。我只想获取字符串中第一次出现 ELECTRONIC WITHDRAWALS 和第一次出现 OTHER WITHDRAWALS 之间的所有内容。我不知道新行是否是导致问题的原因
【问题讨论】:
-
您想要的结果与您的陈述不一致:"在第一次出现...和第一次出现...之间",这里有第二个字符串在你的输出中。
-
因为这被列为一个长字符串,但我不相信
\n会产生不利影响。 -
"(?s)ELECTRONIC WITHDRAWALS\\s*(.*?)\\s*OTHER WITHDRAWALS",见answer。