-1

文字列を 3 回検索して、置換する一致を探すよりも効率的な方法があると思います。

str.replaceAll("_", " ").replaceFirst("^\\w*\\d{3}\\w*", "")
      .replaceAll("20\\d{2}", "")

上記は、長い文字列を 1 行ずつループする for ループにあります。

  1. すべて _ (アンダースコア)
  2. 3 つ以上の数字を含み、その行の最初の単語である単語
  3. 日付 20** (2012,2013..)
4

1 に答える 1

1

まったく同じ文法ではありませんが、「 (_)|(^\w*\d{3}\w*)|(20\d{2})」のように3つの正規表現を1つにまとめることができればより効率的にすることができます。

重要なのは、1 つのパスだけを実行する単一の単純な式を見つけようとすることです。

于 2012-05-31T20:04:05.380 に答える