让我们采用以下字符串:
x <- " hello world"
我想提取第一个单词。为此,我使用以下正则表达式^\\W*([a-zA-Z]+).*
和对第一组的反向引用。
> gsub("^\\W*([a-zA-Z]+).*", "\\1", x)
[1] "hello"
它按预期工作。
现在,让我们在字符串中添加一个数字和下划线:
x <- " 0_hello world"
我替换\\W
为[\\W_0-9]
匹配新字符。
> gsub("^[\\W_0-9]*([a-zA-Z]+).*", "\\1", x)
[1] " 0_hello world"
现在,它不起作用,我不明白为什么。似乎在放入时出现了问题,\\W
但[]
我不知道为什么。不过,正则表达式适用于使用 PCRE 的在线正则表达式测试器。
我究竟做错了什么?