【发布时间】:2021-01-27 05:45:53
【问题描述】:
假设 arg 如下:
\tLUKE\r\n\t\t\t(over comlink)\r\n\t\tGood luck, Lando\r\n\r\n\t\t\t\tLANDO\r\n\t\t\t(into comlink)\r\n\t\tWhen we find Jabba the Hut and \r\n\t\tthat bounty hunter, we'll contact \r\n\t\tyou.\r\n\r\n
我正在尝试使用下面的代码来提取 arg 中以“\t|\n|\r”+几个大写字母开头并以“\r\n\r\n”结尾的所有字符串,但是我没有匹配:
str_extract_all(arg, "(\t|\n|\r)[A-Z]{1}.*?[A-Z]{2}(\r\n\t\t\t).*?(?=(\r\n\r\n))")
我希望此代码的结果是“\tLUKE\r\n\t\t\t(通过 comlink)\r\n\t\t祝你好运,Lando\r\n\r\n " 和 "\tLANDO\r\n\t\t\t(进入 comlink)\r\n\t\t当我们找到小屋贾巴和 \r\n\t\t那个赏金猎人时,我们会联系 \r \n\t\你。\r\n\r\n"。
当我在最后离开积极的前瞻时,匹配会起作用,我会返回 "\tLUKE\r\n\t\t\t" 和 "\tLANDO\r\n\t\ t\t" 符合预期。
str_extract_all(arg, "(\t|\n|\r)[A-Z]{1}.*?[A-Z]{2}(\r\n\t\t\t).*?")
我在这里错过了什么?
【问题讨论】:
标签: r regex pattern-matching