当前位置: 首页 > 面试题库 >

正确的正则表达式,用于用Java中的基本“-”替换em-dash

皇甫飞跃
2023-03-14
问题内容

我的问题与String类的replaceAll方法有关。

我的目的是将文本中的所有破折号替换为基本的“-”。我知道em-dash的unicode字符是\ u2014。

我以以下方式尝试了它:

String s = "asd – asd";
s = s.replaceAll("\u2014", "-");

尽管如此,破折号仍未被取代。我做错了什么?


问题答案:

问题编辑后进行次要编辑:

您可能根本没有使用破折号。如果您不确定自己拥有什么,一个不错的解决方案是简单地找到并替换所有破折号… em或其他。看看
这个答案
,您可以尝试对所有破折号使用
Unicode破折号标点属性 ==>\\p{Pd}

String s = "asd – asd";
s = s.replaceAll("\\p{Pd}", "-");

用上述代码替换em破折号和常规破折号的
工作示例

参考: Unicode正则表达式
public String replaceAll(String regex, String replacement)



 类似资料:
  • 问题内容: 我有这个字符串: 现在,我想在每个数字之前添加String num:。 因此结果必须是: 这也必须工作: 用于搜索数字的正则表达式是:[0-9]+ 但是我想用num:+ [匹配的子字符串]替换匹配的子字符串。 我现在写了一个带有数字的示例,但另一个示例可以是:在每个电子邮件地址之前添加 ·Email found·: 问题答案: 利用分组。您可以使用括号(并)定义组,并通过组索引$n在哪

  • 问题内容: 我需要替换字符串的一部分。我浏览了Python文档并发现了re.sub。 我期望这能打印,而不是“酒吧”。 谁能告诉我我做错了什么? 问题答案: 除了捕获要 替换 的零件外,您还可以捕获要 保留 的零件,然后使用引用对其进行引用以将它们包括在替换字符串中。 尝试以下方法: 另外,假设这是HTML,则应考虑使用HTML解析器来执行此任务,例如Beautiful Soup 。

  • 通过好奇心,有没有办法用Java Stream编写它?

  • Change is inevitable, except from vending machines. — Robert C. Gallagher Puppet 的 regsubst 函数提供了一种处理文本的简单方法, 用于在字符串中查找和替换,或者从字符串提取匹配的模式。 例如,我们通常需要对从 facter 或者从外部程序获得的数据做这样的处理。 在本例中将会看到如何使用 regsubst 提

  • Vim是一个文本编辑器,这意味着大量的Vimscript代码将专注于处理文本。 Vim对正则表达式有着强大的支持,尽管一如既往地也有着一些坑。 把下面的文本打到缓冲区中: :::text max = 10 print "Starting" for i in range(max): print "Counter:", i print "Done" 这个就是我们将用来测试Vimscri

  • 我想以firstName和lastname的形式获得输出。怎么用正则表达式做,有什么想法吗?