正则表达式删除R中除数字,字母和空格之外的所有内容

时间:2017-03-16 04:30:18

标签: r regex

如何在R中删除这些讨厌的反斜杠?我已经搜索了网络和stackoverflow,试图找到摆脱反斜杠的方法......没有运气。

我尝试了很多不同的方法,但我认为唯一可以使用正则表达式和gsub()删除不是数字,字母或空格的字符。这是我的字符串:

"_kMDItemOwnerUserID = 99kMDItemAlternateNames = ( \"(500) Days of Summer     (2009).m4v\")kMDItemAudioBitRate = 163kMDItemAudioChannelCount =     2kMDItemAudioEncodingApplication = \"HandBrake 0.9.4 2009112300\"kMDItemCodecs =     ( \"H.264\", AAC, \"QuickTime Text\")"

正如你所看到的那样,它非常凌乱,在整个地方都有反斜杠和引号。最终,我想要做的是提取电影名称:'(500)Summer of Summer(2009)'。

什么是正则表达式,它将匹配除数字,字母和空格之外的所有内容?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

gsub("[^[:alnum:] ]", "", x)

尝试替换字符类[^[:alnum:] ],它将匹配任何字母,数字或空格的字符:

完整代码:

x <- "_kMDItemOwnerUserID = 99kMDItemAlternateNames = ( \"(500) Days of Summer     (2009).m4v\")kMDItemAudioBitRate = 163kMDItemAudioChannelCount =     2kMDItemAudioEncodingApplication = \"HandBrake 0.9.4 2009112300\"kMDItemCodecs =     ( \"H.264\", AAC, \"QuickTime Text\")"

gsub("[^[:alnum:] ]", "", x)
[1] "kMDItemOwnerUserID  99kMDItemAlternateNames   500 Days of Summer     2009m4vkMDItemAudioBitRate  163kMDItemAudioChannelCount      2kMDItemAudioEncodingApplication  HandBrake 094 2009112300kMDItemCodecs       H264 AAC QuickTime Text"