可以说我有以下字符串向量:
x <- c("this!", "is!", "not my name[!]!", "Understrand[!] Mate!",
"Because!I[!] said so!")
Run Code Online (Sandbox Code Playgroud)
我需要一种替换惊叹号的方法"!" 使用"!\n"但仅当感叹号未被方括号括起时.所以输出看起来像这样:
"this!\n"
"is!\n"
"not my name[!]!\n"
"Understrand[!] Mate!\n"
"Because!\nI[!] said so!\n"
Run Code Online (Sandbox Code Playgroud)
我一直在玩,只是想不出来.
非常感谢您的帮助.
托尼B.
使用带有负面后视(?<!pattern)和负前瞻(?!pattern)断言的perl样式正则表达式:
R> gsub("(?<!\\[)\\!(?!\\])", "!\n", x, perl=TRUE)
[1] "this!\n" "is!\n"
[3] "not my name[!]!\n" "Understrand[!] Mate!\n"
[5] "Because!\nI[!] said so!\n"
Run Code Online (Sandbox Code Playgroud)
编辑: @Mareks测试用例需要一个布尔"或"("|"):
R> gsub("(?<!\\[)\\!|\\!(?!\\])", "!\n", c("aa[!bb", "aa!]bb"), perl=TRUE)
[1] "aa[!\nbb" "aa!\n]bb"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |