当前位置: 首页 > 知识库问答 >
问题:

用Java中的正则表达式替换所有功能[重复]

令狐辉
2023-03-14
String ab="Home   333-666-8888  Do Not Disturb";

String bc=ab.replaceAll("[^0-9-]", "");

共有1个答案

叶富
2023-03-14

您认为^意味着匹配字符串的开头,对吗?嗯,事实是,它确实匹配字符串的开头,除非放在字符类中。如果它位于字符类([]),则表示“除此字符类中的字符之外的任何内容”。因此,您的regex实际上匹配了字符串中除了电话号码部分以外的所有内容,并用空字符串替换了除电话号码部分以外的所有内容!

即使它确实意味着匹配字符串的开头,它也不会像您预期的那样工作。因为您的字符串不是以0-9-开头的。

因此,要解决这个问题,只需删除^

 类似资料:
  • 本文向大家介绍Java正则表达式的替换和分组功能,包括了Java正则表达式的替换和分组功能的使用技巧和注意事项,需要的朋友参考一下 前言 这篇来学习正则表达式的替换和分组功能,替换很好理解,分组有点复杂,特别是如何写有效的分组的正则表达式。这篇通过几个练习,简单了解下替换和分组功能。 1.替换功能 在String类有一个替换功能的方法,结合正则表达式去实现替换,下面是replaceAll()方法的

  • 我正在尝试使用方法,只保留字母字符和。我试图用一个空字符串替换每个既不是字母也不是上述字符的字符。 到目前为止,我已经尝试过这样的东西(在不同的变体中),它正确地保留字母,但替换了我想要保留的特殊字符:

  • 问题内容: 我有这个字符串: 现在,我想在每个数字之前添加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 提