1

私はそれについて少し検索し、たくさんのものを試しましたが、それを理解することができます.

"a=:a OR b=:b OR c=:c"取得したいような単純な文字列で::a :b :c

GWT RegExp を使用して試したものは次のとおりです。

RegExp regExp = RegExp.compile("(:\\w+)", "g"); // Tried without 'g'
MatchResult matcher = regExp.exec("a=:a OR b=:b OR c=:c");

しかし、これは2つのグループ「:a」、「:a」を返します...オンラインテスターで試してみましたが、必要なものを取得できませんでした。

ありがとう!

4

3 に答える 3

2

最初にアダムマタンが言ったように、私は逃げるべきだった:。しかし、私は本来あるべきクラスを使用していませんでした。 regExp.exec可能なすべての値を取得するには、whileループで複数回実行する必要があります。

何かのようなもの :

    MatchResult matcher = regExp.exec(this.sqlFilter, "g");
    while (matcher != null) {
        ...

        matcher = regExp.exec(this.sqlFilter);
    }
于 2012-10-10T14:53:12.913 に答える
2

次をエスケープし:ます。

"(\\:\\w+)"

あなたの例でオンラインテスターへの直接リンク。

ここに画像の説明を入力

于 2012-10-10T14:41:17.687 に答える