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

逃脱:

"(\\:\\w+)"

使用您的示例直接链接到在线测试仪。

在此处输入图像描述

于 2012-10-10T14:41:17.687 回答
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 回答
-1

试试这个:

var str="a=:a OR b=:b OR c=:c";
var patt1=/:[\w+]/g;
var arr = str.match(patt1);
于 2012-10-10T14:50:38.760 回答