tsu*_*ume 5 regex r regular-language
我试图用白色空格替换由非白色空间限制的逗号,同时保持其他逗号不变(在R中).
想象一下,我有:
j<-"Abc,Abc, and c"
Run Code Online (Sandbox Code Playgroud)
而且我要:
"Abc Abc, and c"
Run Code Online (Sandbox Code Playgroud)
这几乎有效:
gsub("[^ ],[^ ]"," " ,j)
Run Code Online (Sandbox Code Playgroud)
但它删除了逗号两边的字符给出:
"Ab bc, and c"
Run Code Online (Sandbox Code Playgroud)
您可以使用具有负向lookbehind和lookahead的PCRE正则表达式:
j <- "Abc,Abc, and c"
gsub("(?<!\\s),(?!\\s)", " ", j, perl = TRUE)
## => [1] "Abc Abc, and c"
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
细节:
(?<!\\s) - 在a之前不能有空格 ,, - 文字 ,(?!\\s) - a之后不能有空格 ,另一种解决方案是匹配,用字边界包围的内容:
j <- "Abc,Abc, and c"
gsub("\\b,\\b", " ", j)
## => [1] "Abc Abc, and c"
Run Code Online (Sandbox Code Playgroud)
看另一个R演示.