【问题标题】:javascript: regex not printing escape characterjavascript:正则表达式不打印转义字符
【发布时间】:2017-06-22 13:53:35
【问题描述】:

我想进行正则表达式搜索,这是我的数据。

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:**** 后面的反斜杠被遗漏了。如何打印?

提前致谢

【问题讨论】:

  • 不,这不是“错过”,因为它不存在。您的输入字符串中没有文字 \
  • O: 后面多了一个反斜杠
  • 字符串文字O后面有一个反斜杠符号,但它不表示文字\。要在字符串文字中表示文字 \,您需要 \\
  • 再说一遍:你不能“打印”任何不存在的东西。
  • 我明白了你的意思,但问题是我从某个地方得到了这个输出,我需要在 Host 之后找出事件类型直到“on”。所以我们不能忽视它。

标签: javascript regex printing escaping character


【解决方案1】:

您必须找到数据中的所有反斜杠并将其替换为双反斜杠。

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

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

【讨论】:

  • 感谢 t c 的帮助,我得把这个东西放在一个 rhino 引擎上。你能推荐点什么吗?
  • 这是非常可怕和骇人听闻的(我在此评论中没有格式化选项)但在 arr = rx.exec(a)[1]; 行之后你可以把 arr = arr.replace(/([A-Z]:)/,'$1\\');这将查找一个大写字母后跟一个冒号,并将其替换为该大写字母后跟一个冒号后跟一个反斜杠
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-05
  • 2012-08-16
  • 1970-01-01
  • 2016-11-03
  • 2010-12-22
相关资源
最近更新 更多