2017-06-22 128 views
-1

我想做一个正则表达式搜索这是我的数据。javascript:正则表达式不打印转义字符

a = 'Watch4net APG Event: Host/O:\ Label:OraDB Serial Number 1610f067 on Device dlpdb1 is alerted.' 

现在我想要做的提取如下。

rx = /Event: Host\/(.*) on/ 
arr = rx.exec(a)[1] 

在结果我后得到以下

'O: Label:OraDB Serial Number 1610f067' 

反斜线将O:****是越来越错过。我怎样才能打印它?

在此先感谢

+1

不,它不是“错过”,因为**它不存在**。输入字符串中没有字面意义的''''。 –

+0

O后有一个反斜杠: – tollboy

+1

*字符串*中的'O'后面有一个反斜杠符号,但它不表示文字''''。要在字符串文字中表示一个文字“''',你需要''\\''。 –

回答

1

你必须找到所有的反斜线您的数据,并用双反斜线替换它们。

a = 'Watch4net APG Event: Host/O:\\ Label:OraDB Serial Number 1610f067 on Device dlpdb1 is alerted.' 

JavaScript正在使用一个反斜杠作为转义字符。请注意,您将无法使用JavaScript将它们翻倍,因为它无法“开始”查看它,因此需要以其他方式操作数据。

+0

感谢您的帮助,我必须在犀牛引擎中找到这个东西。你能提出一些建议吗? – tollboy

+0

这是非常可怕和hacky(我没有在这个评论中的格式选项),但在行arr = rx.exec(a)[1];之后;你可以把arr = arr.replace(/([A-Z]:)/,'$ 1 \\');这将查找一个大写字母,后跟一个冒号,并用大写字母替换,后跟一个冒号,后跟一个反斜杠 –