传统上在R中,可以在具有两个斜杠的正则表达式中使用元字符,例如(变成\(,但我发现方括号不一样。
mystring <- "abc[de"
#remove [,] and $ characters
gsub("[\\[\\]$]","",mystring)
[1] "abc[de"
[[:punct:]]
有效,但如果我不需要,我讨厌使用非标准的正则表达式。可以使用正则表达式集语法吗?
答案 0 :(得分:5)
你应该启用perl = TRUE
,然后你可以使用类似Perl的语法,这更直接(恕我直言):
gsub("[\\[\\]$]","",mystring, perl = TRUE)
请参阅demo
结果:
[1] "abcde"
答案 1 :(得分:4)
我会回避var parametersToAdd = new System.Collections.Generic.Dictionary<string, string> { { "resource", "foo" } };
var someUrl = "http://www.google.com";
var newUri = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(someUrl, parametersToAdd);
语法并使用[ab]
。除了工作,它也可能更具可读性:
(a|b)
答案 2 :(得分:1)
你可以使用\\[
作为匹配的东西,除非你匹配多个选项,否则你不需要额外的方括号:
> mystring <- 'abc[de'
> gsub("\\[", "", mystring)
[1] "abcde"
通过使用fixed=TRUE
取消特殊含义,您可以使单个字符变得更简单,更快:
> mystring <- 'abc[de'
> gsub("[", "", mystring, fixed=TRUE)
[1] "abcde"
或者如果方括号内的第一个东西是方括号(未转义),则它们被视为文字字符,而不是具有通常的特殊含义:
> mystring <- 'a,bc[d]e$'
> gsub("[][,$]", "", mystring)
[1] "abcde"