【问题标题】:Conversion of C#.Net Regex to Java Regex PatternC#.Net 正则表达式到 Java 正则表达式模式的转换
【发布时间】:2012-03-25 17:53:09
【问题描述】:

我不是正则表达式的专家,因此我很难将此正则表达式模式转换为 Java。

我相信对于一个足够熟悉 Regex 的人来说,这将是一件容易的事。 但是,我看到过类似的主题 - 每个主题都与特定的正则表达式模式相关...

模式是:

@"\<meta name=""title"" content=""(?<title>.*)""\>"

提前致谢!

【问题讨论】:

  • 我在其中看到的唯一有趣的是双引号。删除前面的@,取消双引号并将它们转义(使用反斜杠)。
  • 我这样做了。我不只是将它复制粘贴到 Java...我删除了 '@' 并将特殊字符更改为 *(例如 \" 而不是 "" 和 \\ 而不是 ),但是我得到了一个例外不是有效的正则表达式模式
  • 这可能是命名捕获。如果 Java 支持它们,我找不到任何直接的答案。试着把它拿出来。将 (?&lt;title&gt;.*) 替换为 (.*) (编辑:实际上,显然 Java7 会但不是之前的 stackoverflow.com/a/415635/65387

标签: c# java regex


【解决方案1】:

如果你想在左尖括号和右尖括号前加上斜线,使用这个(Java 转义):

"\\\\<meta name=\"title\" content=\"(.*)\"\\\\>"

没有它们,使用这个:

"<meta name=\"title\" content=\"(.*)\">"

Tested here 使用未转义的版本:

<meta name="title" content="(.*)">

【讨论】:

  • 我试过了,有异常。可以肯定的是,我也在regex.powertoy.org 上对其进行了测试,结果为阴性。
猜你喜欢
  • 2019-08-02
  • 2015-03-21
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
相关资源
最近更新 更多