1

文字列の「&」のみに一致し、「&&」には一致しない正規表現を教えてください。

例: 入力文字列

s1 = "STRING1 && STRING2 & STRING3 AND STRING4";

入力文字列を関数で分割しています-

String[] param = s1.split('&'); or s1.split('&(?!&&)');

分割後の結果は -

param[1] = STRING1 && STRING2  
param[2] = STRING3 AND STRING4

返信ありがとうございます。

開発

4

3 に答える 3

2

ここで正規表現でルックアラウンドを利用できます

(?<!&)&(?!&)

上記の正規表現は、前後&に別の が存在しない に一致し&ます。

于 2013-09-16T06:27:37.053 に答える
0

エレガントではないかもしれませんが、分離された & を別のものに置き換えてから、分割を行います。

このようなもの (IOS 構文ではなく、疑似コード):

// s1 = "STRING1 && STRING2 & STRING3 AND STRING4";
aux=s1.replaceAll("([^&])&([^&])","$1 _SEPARATOR_ $2");
// in case of & at the beginning
aux=aux.replaceAll("^&([^&])"," _SEPARATOR_ $2");
// in case of & at the end
aux=aux.replaceAll("([^&])&$","$1 _SEPARATOR_ ");

// now aux="STRING1 && STRING2  _SEPARATOR_  STRING3 AND STRING4";
String[] params=aux.split(" _SEPARATOR_ ");
于 2014-02-01T19:55:12.747 に答える