我试图寻找解决方案,但似乎 R 没有明确的解决方案。
我尝试通过模式拆分字符串,比如说,空格和大写字母,我为此使用stringr包。
x <- "Foobar foobar, Foobar foobar"
str_split(x, " [:upper:]")
Run Code Online (Sandbox Code Playgroud)
通常我会得到:
[[1]]
[1] "Foobar foobar," "oobar foobar"
Run Code Online (Sandbox Code Playgroud)
但是,我想得到的输出应该包括来自分隔符的字母:
[[1]]
[1] "Foobar foobar," "Foobar foobar"
Run Code Online (Sandbox Code Playgroud)
在 stringr 中可能没有像反向引用这样的开箱即用的解决方案,所以我很乐意得到任何帮助。
您可以使用 1 个以上的空格进行分割,并后跟一个大写字母:
> str_split(x, "\\s+(?=[[:upper:]])")
[[1]]
[1] "Foobar foobar," "Foobar foobar"
Run Code Online (Sandbox Code Playgroud)
这里,
\\s+- 1 个或多个空格(?=[[:upper:]])-正向前瞻(非消耗模式),仅检查字符串中当前位置右侧的大写字母,而不将其添加到匹配值,从而将其保留在输出中。请注意,\s匹配各种空白字符,而不仅仅是普通的常规空格。此外,如果您打算将这些模式与其他正则表达式引擎(例如 PCRE)一起使用,那么使用它比 -更安全。[[:upper:]][:upper:]
| 归档时间: |
|
| 查看次数: |
1614 次 |
| 最近记录: |