【问题标题】:Regex subbing out 'section character' in java正则表达式在java中替换“节字符”
【发布时间】:2011-04-01 06:33:33
【问题描述】:

我正在运行一系列正则表达式替换(即 String.replaceAll 调用)以将文本文件中的所有特殊字符转换为 XML 可解析的特殊字符。例如:

string_out = string_out.replaceAll("&", "&");

我在替换“部分字符”时遇到了一个绊脚石,即这个小曲线:§

对于初学者,我在 vi 中进行编辑,所以我什至无法将字符粘贴到那里,它不是标准或扩展 ascii 的成员。出于同样的原因,我也看不到在正则表达式中通过十六进制代码指定它。

您将如何指定此字符作为正则表达式替换?或者,如果您只是想顺便告诉我已经有一个函数隐藏在某个地方,可以进行我正在手动进行的字符转换,那也很酷。

【问题讨论】:

    标签: java regex non-ascii-characters


    【解决方案1】:

    你不能简单地使用 unicode 代码点吗?

    【讨论】:

      【解决方案2】:
      Unicode: §
      Hex:     0xA7
      html:    §
      name:    section sign
      

      你可以在latin-1 supplement找到它。

      【讨论】:

      • 这与我的思路相似,但我与 java 进行了一些角力以使其工作。结果证明是这行代码:string_out = string_out.replaceAll("\\xA7", "§"); 这里有两个问题是反斜杠必须加倍才能生成有效的转义码,而 Java 仍然不喜欢它,直到 A 被大写。跨度>
      猜你喜欢
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 2019-12-02
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多