Regex r = new Regex(@"[[](?<form>\w+)[]].[[](?<field>\w+)[]]");
这句在C#中是用来匹配什么的,若换成java,该如何写这个(@"[[](?<form>\w+)[]].[[](?<field>\w+)[]]");,
在线等,谢谢!!
在线等

解决方案 »

  1.   

    不懂.好像和java的正则不一样.
      

  2.   

    我怀疑是这样的正则:"\\[(\\w+)\\].\\[\1\\]"
    反向引用好像用的不对,“[abx]6[abx]”不能匹配成功。希望高手解决一下。
      

  3.   

    这下弄对了,相当于:
    "\\[(\\w+)\\].\\[\\1\\]" 用来匹配[abc123]x[abc123]之类的字符串。两个[]内的字符串相等,之间有一个任意字符。
      

  4.   

    这应该是 .NET 中命名捕获组语法,Java 中没有类似的语法。命名捕获组可以在获取匹配到的捕获组时采用标号进行处理,而不是采用 1,2,3 这类的数字。像 \w 在 .NET 中如果不启用某些标志的话,除了 A-Za-z0-9_ 之外还能表示其他的 Unicode 字符。我不明白的是,你连这个表达式都不知道是做什么用的,转成 Java 有什么用处?我对 .net 不熟,转成 Java 应该是这种格式:String regex = "\\[(\\w)\\].\\[(\\w)\\]";
      

  5.   

    这里很多人不懂c#的,你翻译一下,你的原始正则意图是什么。
    另外,这里有我收集的几个关于java正则的文章,我觉得还是挺精华的,你可以看看
    http://www.1000100hui.com/Control.html?PageIndex=28&PageTypes=51
    还有可以看看这个。
    http://www.1000100hui.com/bulletin/biggift.html。