2017-03-16 169 views
0

如何删除R中的这些讨厌的反斜杠?我搜索了网页和stackoverflow,试图找到一种方法来摆脱反斜杠...没有运气。正则表达式除去R中的所有数字,字母和空格

我已经尝试了很多不同的方法,但我认为唯一能工作的将是使用正则表达式和gsub()去除每个不是数字,字母或空格的字符。这是我的字符串:

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

正如你可以看到它是非常混乱,与反斜杠和引号到处都是。最终,我想要做的是提取电影名称:'(500)夏日(2009)'。

什么是正则表达式,除了数字,字母和空格之外什么都匹配?

非常感谢您的帮助。

+0

你在哪里得到这个字符串从?这似乎是[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。如果输入字符串是标准格式,请使用适当的解析器而不是使格式无效。 – 4castle

+0

感谢您的反馈。我本可以给出更多的上下文,但我只需要这个具体的答案。如果我能得到这个答案,我的大型项目就可以工作。要回答您的问题,该字符串来自shell命令mdls,该命令提取与文件关联的所有元数据。 – tsouchlarakis

回答

1
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" 
+0

美好 - 我正在寻找!谢谢。 – tsouchlarakis

相关问题