【发布时间】:2016-02-05 03:58:14
【问题描述】:
我想在我的文本中匹配 - 之后的单词,然后如果匹配的单词是另一个单词的结尾,那么我想在单词和匹配的单词之间进行拆分。
文本示例:
JOHN LION - XYZ RAN RUN TREEABC GRASS - ABC LIMB RAN RUN LION -XYZ JOG SUN
SKY - ABC LION JOHN PONDABC RUN - PDF STONE
我希望文本看起来像什么:
JOHN LION - XYZ RAN RUN TREE ABC GRASS - ABC LIMB RAN RUN LION -XYZ JOG SUN
SKY - ABC LION JOHN POND ABC RUN - PDF STONE
我不想在ABC 上执行grepl 和gsub,因为破折号后面的单词总是在变化并且会出现多次。此外,匹配单词前面的单词也总是不同的,并不总是TREE。无论匹配的单词前面是什么单词,我总是想做一个拆分。
如果我执行以下 str_extract:
str_extract(df, "(?<=-\\s)\\w+")
然后我匹配 XYZ 而不是 ABC。
我只想匹配 - 之后的单词,如果它也在另一个单词的末尾,但我不知道另一个单词是什么。
我不知道该怎么做。如果需要任何进一步的信息,请告诉我。任何帮助将不胜感激。
【问题讨论】:
-
我看到了各种各样的问题,例如如果后破折号匹配的单词出现多次会发生什么?是否存在您不想要拆分匹配词的情况?
-
@Tim 谢谢你的评论我已经编辑了我的问题。但是后破折号匹配的词会出现很多次,无论匹配的词前面的词是什么,我总是想做一个拆分。
标签: regex r gsub stringr grepl