1

split()Java のメソッドを使用して、アセンブリ コードの行を分割する必要があります。サンプルコードは次のとおりです。

String line = "Add a, b, c";
String[] parts = line.split("[\\s+,]");
System.out.println(Arrays.toString(parts));

出力:

[Add, a, , b, c]

出力が次のようになる必要があります。

[Add, a, b, c]

次のいずれかの入力に対して:

String line = "Add a,b,c";
String line = "Add   a  ,b,c";
String line = "Add a,  b,c";
String line = "Add a,b , c";
String line = "Add a , b , c";

または類似のケース。

の代わりに使用する正しい正規表現は何[\\s+,]ですか?

4

3 に答える 3

3

次のようにする必要があります。

String[] parts = line.split("[\\s,]+");

現在の正規表現は、正確に 1 つのスペース、または正確に 1 つ+の 、または正確に 1 つのカンマと一致します。

上記の正規表現は、1 つ以上のスペースおよび/またはコンマに一致します。

違いは+: の配置です。文字クラス内に表示されると、文字どおりに解釈されます。

于 2012-05-23T17:10:26.187 に答える
2

どう[\\s,]+ですか?スペースまたはカンマの 1 つ以上の出現に一致します

于 2012-05-23T17:11:29.350 に答える
0

次の線に沿って何かを試してください:

?([0-9] +)?、?([0-9] +)?、?([0-9] +)?"を追加します

「[\1、\ 2、\3を追加]」

([0-9] +) は、任意のサイズの数値を取る必要があります

_? オプションのスペースのためのスペースを作る必要があります

\ 1 は、()の最初のセットで最初に見つかった値を逆参照する必要があります

\ 2 "" "" "" "()の2番目のセット

\ 3 "" "" "" "()の3番目のセット

論理は正しいですが、私の構文が正しいことを確認してください。

于 2012-05-23T17:28:32.080 に答える