String中出现多次

时间:2012-10-10 14:30:09

标签: java regex gwt

我对此进行了一些搜索并尝试了一些东西,但可以解决这个问题。

在像"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”......我在网上测试员上尝试了一些东西,但却得不到我想要的东西。

谢谢!

3 个答案:

答案 0 :(得分:2)

逃离:

"(\\:\\w+)"
用你的例子

Direct link给在线测试人员。

enter image description here

答案 1 :(得分:2)

首先,亚当马坦说,我应该逃过:。 但我并没有按照应有的方式使用这些课程。 regExp.exec应该在while循环中多次执行以获取所有可能的值。

类似的东西:

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

        matcher = regExp.exec(this.sqlFilter);
    }

答案 2 :(得分:-1)

试试这个:

var str="a=:a OR b=:b OR c=:c";
var patt1=/:[\w+]/g;
var arr = str.match(patt1);