【问题标题】:How to split text string in R based on capitalization?如何根据大写拆分R中的文本字符串?
【发布时间】:2014-08-14 18:15:28
【问题描述】:

这是我不确定是否可以在 R 中完成的第一个字符串拆分场合。

我有一个包含表单信息的字符串列表:

data <- c("Los Angeles DodgersAtlanta Braves",
        "Milwaukee BrewersChicago Cubs",
        "Arizona DiamondbacksMiami Marlins")

如何拆分每个字符串中相邻的两个团队名称?
有没有办法根据字符串的大小写来查找或拆分?

(也许一种方法可以找到两个小写字符在大写字母之前并在那里拆分的时间?)

【问题讨论】:

  • 你试过(?&lt;=[a-z]{2})(?=[A-Z])吗?
  • @CasimiretHippolyte 前面有 2 个小写字符
  • @CasimiretHippolyte 你成功了,谢谢

标签: regex r string split


【解决方案1】:

使用以下正则表达式拆分:

(?:\s|(?<=[a-z]))(?=[A-Z])

这是regex demo。

【讨论】:

  • 2个小写字母在哪里?
  • 请注意:在 R 中,您需要使用额外的反斜杠转义 \s,并表示 perl = TRUE。所以像strsplit(data, "(?:\\s|(?&lt;=[a-z]))(?=[A-Z])", perl = TRUE)
  • DodgersAtlanta
  • 谢谢你,Richard,我正要问这个问题
  • 有没有办法将完整的团队名称保持在一起,而不是将整个字符串分成单独的部分?现在我不知道适当地重建团队名称的规则,因为每个团队的字符串片段数量会有所不同。这个问题是我试图使用大写字母前面的 2 个小写字符作为分割点的原因。谢谢大家的帮助。
猜你喜欢
  • 2022-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多