【问题标题】:replacing a text with a pattern in java [duplicate]用java中的模式替换文本[重复]
【发布时间】:2016-03-08 22:42:02
【问题描述】:

我有这样的文字

String str = "<x>abc</x>";

并且想要匹配

<x>
   abc
</x>

我试图做类似的事情:

str = str.replaceAll(">",">\\\\w*");
str = str.replaceAll("<","\\\\w*<");

Pattern pattern = Pattern.compile(str);

str在compile中的值实际上是怎样的

\w*<x>\w*abc\w*</x>\w*

我期待

\\w*<x>\\w*abc\\w*</x>\\w*

【问题讨论】:

  • 如果您在正则表达式中使用反斜杠,请记住它们可以在 python 字符串文字或正则表达式本身中转义某些内容。要获得实际的反斜杠,请使用原始字符串(首选)r"\\w*&lt;" 或双重转义它们"\\\\w*&lt;"
  • 双重转义只给出一个反斜杠而不是两个

标签: java regex


【解决方案1】:

我必须使用八 (8) 个 \ 字符(即 \\\\\\\\)才能在输出中获得两 (2) 个字符。这有点奇怪,但有效。

【讨论】:

    猜你喜欢
    • 2019-10-01
    • 2016-01-27
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 2017-06-10
    • 2021-11-27
    • 2018-06-30
    • 1970-01-01
    相关资源
    最近更新 更多