r - R:正则表达式 \\s 不是空格
问题描述
我只是想知道为什么选项的\\s
括号不起作用[]
,但空白确实有效。这是一个例子:
sub("[a-z ]+[a-z]+","it works","abcd xyz")
# [1] "it works
这就是我要的。但如果我使用\\s
我得到这个:
sub("[a-z\\s]+[a-z]+","it works","abcd xyz")
# [1] "it works xyz"
而且 [[:space:]] 也没有给出我想要的结果:
sub("[a-z[[:space:]]]+[a-z]+","it works","abcd xyz")
# [1] "abcd xyz"
为什么\\s
在选项括号内不起作用?
这涉及编程语言 R。
解决方案
就像我在评论中说的那样,你的最后一个正则表达式中有三个方括号,只有两个是必需的。
以下任何一项都可以满足您的要求。
sub("[a-z[:space:]]+[a-z]+","it works","abcd xyz")
sub("[[:lower:][:space:]]+[[:lower:]]+","it works","abcd xyz")
#[1] "it works"
推荐阅读
- python - 如何访问来自 Python 中另一个 .py 文件的函数的某种固定局部变量?
- android-studio - recyclerview中的searchview在搜索后没有选择正确的位置
- c# - Public Static objects are being disposed
- php - Google Charts & MySQL Timestamp 处理问题
- java - Java 图像数组
- html - 如何设置控件样式以越过浏览器窗口边界,如 HTML Select 标记?
- docker - Nifi在docker上向德鲁伊插入数据
- javascript - 带有js的两个单选按钮的HTML检查值
- postgresql - 在 RedShift 表中存储数组的正确方法是什么?
- java - Java 中的 Selenium WebDriver。按标签 ClassName 和父 ClassName 选择