【发布时间】:2019-09-23 05:52:53
【问题描述】:
我有以下输入语句:
B <- "ASSIGNEE/BANK (FORMERLY KNOWN AS BANK SETIA) AND NUR AMIRA BINTI RAMZI [NRIC NO. 918267-16-6252] AND HAFIZUDDIN BIN ALI [NRIC NO. 918273-16-1635] ASSIGNOR"
我想提取AND(应包含在输出中)和ASSIGNOR(应从输出中排除)之间的单词。
预期输出
AND NUR AMIRA BINTI RAMZI [NRIC NO. 918267-16-6252] AND HAFIZUDDIN BIN ALI [NRIC NO. 918273-16-1635]".
在assignee 之前和assignor 之后我还有很多话要说。我只想捕获中间的一个,如上图所示。
这是我迄今为止的试验,没有产生所需的输出:
sub(".*ASSIGNEE.* *(AND.*?) *ASSIGNOR.*", "\\1", B)
# [1] "AND HAFIZUDDIN BIN ALI [NRIC NO. 918273-16-1635]"
谢谢。
【问题讨论】:
-
修改你的代码,应该可以工作。试试
sub(".*ASSIGNEE.* *(AND.*?ASSIGNOR).*", "\\1", B) -
如何检测first and in sentence?此代码检测最后一个和
-
我不确定你想得到什么,但如果我没记错的话,试试
sub(".*ASSIGNEE.*? *(AND.*?ASSIGNOR).*", "\\1", B)。也就是说,在您的代码中,如果您想包含它,则必须在 ASSIGNOR 之后关闭括号(如我的第一条评论中所示),并且您必须在ASSIGNEE.*之后添加?以获得第一个AND。跨度>