1

以下の文字列を指定します。

String s = "sschk@@123456sschk@@123456gme@@100&200&300&1,2,3,4,5$6,7,8,9,0sschk@@123456";

パターンを適用するsschk@@\\d+?sschk@@.+?、すべてを取得sschk@@123456して空の文字列に置き換えたい。sschk@@後の番号は、取得するたびに異なる場合があることに注意してくださいsschk@@321321

しかし、私は得た

[sschk@@1, sschk@@1, sschk@@1]

sschk@@123456後で検索して置換できるように、正確な each を取得するにはどのパターンを適用する必要がありますか。

どうもありがとう。

4

2 に答える 2

3

正規表現の問題は、「?」を使用したことです。正規表現の「+」の貪欲さを切り替えるマーカーなので、正規表現は「sschk@@\d+?」「文字列 sschk@@ の後に 1 つ以上の数字が続きますが、一致する桁数はできるだけ少なくする」ことを意味します。「?」の削除 「文字列 sschk@@ の後に 1 つ以上の数字が続く (できるだけ多くの数字に一致する)」という意味になります。

正規表現ステートメントはおそらく次sschk@@\\d{6}のようになります。これは、文字列 "sschk@@" に正確に 6 桁が続くものと一致します。文字列 "sschk@@" に可変長の数字が続くが 6 桁を超えないものと一致させたい場合は、sschk@@\\d{1,6}. 文字列「sschk@@」の後に任意の桁数を一致させる必要がある場合は、次を使用しますsschk@@\\d+

于 2013-06-08T11:04:05.040 に答える
0

やり遂げたと思います。このようにパターンを適用するだけです

(sschk@@\\d+)
于 2013-06-08T11:13:34.400 に答える