【问题标题】:Regex to replace everything after a specific symbol? java正则表达式替换特定符号后的所有内容?爪哇
【发布时间】:2018-12-28 10:10:21
【问题描述】:

我有一个格式为“一/二/三”的字符串,我只需要第一个(在第一个前斜杠之前)。我是这样尝试的:

if (text.contains("/")) {
        int i = text.indexOf("/");
        return text.subSequence(0, i).toString();
    }

此解决方案有效,但我认为编写简单的text.replace() 函数会更好。 尝试了这个正则表达式"\\/(.*)",但它不起作用。

【问题讨论】:

  • 您是否尝试在/ 上拆分?
  • 喜欢这个?text.split("/")[0];
  • 为什么要替换?为什么你会使用subSequence而不是substring而不使用toString()
  • 是的,在/ 上拆分,然后再次加入第二部分和第三部分ideone.com/NHlFZn
  • 使用索引和子字符串很好(但很麻烦)。但是split?这只是一个懒惰的技巧。

标签: java regex replace


【解决方案1】:

replace 不采用正则表达式作为参数,只是尝试替换传递的字符序列。

你可以使用replaceFirst:

 return text.replaceFirst("/.*", "");

(请注意,没有什么可以逃避的,也不需要组)

【讨论】:

    【解决方案2】:

    您可以尝试下面的代码,它将在第一个斜杠后替换,

     text.replaceAll("\\/[^\\/].*", "")
    

    【讨论】:

      【解决方案3】:

      在这种情况下替换将不起作用,请使用此。

      return text.replaceAll("/.", "");
      

      【讨论】:

        猜你喜欢
        • 2016-01-14
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-10
        相关资源
        最近更新 更多