尝试使用正则表达式

时间:2015-12-18 18:34:54

标签: regex r grep

我必须在带有R的大量日志文件中查找带有正则表达式的寄存器。

所有数据大约是1 Gb,我必须寻找一些注册表并将匹配添加到数据帧。

我正在做的是以下内容:

grep(paste("(Sending+.+message+.+1234567890+.+5000)", sep=""), dfLogs)

当我只为一个寄存器执行此操作时,这是正确的 当我尝试为所有搜索执行grep时:

dfTrx$RcvMessage <- paste("(Sending+.+message+.+", dfTrx$NUMBER, "+.+", dfTrx$AMOUNT,")", sep="")
dfReceived <- unique(grep(paste(dfTrx$RcvMessage, collapse="|"), dfLogs), value=TRUE)

我收到以下错误:

Error in grep(paste(dfTrx$RcvMessage, collapse = "|"), dfLogs) : 
  invalid regular expression '(Sending+.+message+.+1234567890+.+20)|(Sending+.+message+.+9876543210+.+20)|...

如何为所有值执行此正则表达式?我做错了什么?

数据示例:

  

2015年12月9日19:01:44717 - [DEBUG] [池-1-线程4450] [OutputHandler] 8发送(多个)消息:01XX765903091220151901440XXXX0000129D3A00003996101901442015120903857655184776733438000000200001XX765904091220151901440XXXX0000118BC100001839671901442015120903857655194251212137000000300001XX765905091220151901440XXXX000010E52A00003311451901442015120903857655203331836622000000200001XX765906091220151901440XXXX000011DCD300001972561901442015120903857655215522476419000000300001XX765907091220151901440XXXX000012980900003923951901442015120903857655225531194531000000500001XX765908091220151901440XXXX000010ED2200003882461901442015120903857655237351043626000000200001XX765909091220151901440XXXX000011BDBE00001656451901442015120903857655243312669477000000200001XX765910091220151901440XXXX00001211F3000024385819014420151209038576552598211945310000002000

我需要找到邮件的发送,以及邮件内容的数量和金额。

0 个答案:

没有答案