0

これが一致する理由:

String str = "099.9 102.2" + (char) 0x0D;
RE re = new RE("^([0-9]{3}.[0-9]) ([0-9]{3}.[0-9])\r$");        
System.out.println(re.match(str));

しかし、これはしません:

String str = "099.9 102.2" + (char) 0x0D;   
RE re = new RE("^([0-9]{3}.[0-9]) \1\r$");      
System.out.println(re.match(str));

後方参照が機能していないようです...何が欠けていますか?

4

1 に答える 1

2

このターゲット文字列で試してください:

"099.9 099.9\r"

後方参照は、その部分式を再度実行することを意味するのではなく、その部分式が一致したものの別のインスタンスに一致することを意味します。

また、後方参照では 2 つのバックスラッシュを使用する必要があります。

RE re = new RE("^([0-9]{3}.[0-9]) \\1\r$");
于 2010-04-01T21:13:01.680 に答える