R中的正则表达式不像其他地方那样有效

时间:2016-12-20 11:09:10

标签: r regex

我在图像上有一个句子和一个查询。它按我的意愿工作。但我把它移植到R时真的卡住了。

enter image description here

我的R查询是: gsub("\\S*[^[:alnum:]\\s\\?\\!\",();:\\.'\\/-]+\\S*", "", x)

它削减了一切。我找不到我的错误。 即使是较短的alnum:"\\S*[^[:alnum:]]+\\S*"也会削减一切。 我不明白。请帮忙。

1 个答案:

答案 0 :(得分:3)

你不能在TRE括号表达式中使用\s简写类,替换为[:space:],而忽略所有其他"特殊" chars因为你不应该逃避它们(它们已经与文字符号相匹配)。

pat <- "\\S*[^[:alnum:][:space:]?!\",();:.'/-]+\\S*"
x <- "But what's about in a interacting QFT a 2-particla state in the far past: $|E_{\\bf p_1}, {\\bf p_1}, E_{\\bf p_2} {\\bf p_2}&gt;$ which undergoes"
gsub(pat, "", x)

请注意,即使gsub(pat, "", x, perl=TRUE)也可以。

请参阅R demo