我试图在 Java 字符串文字中得到类似的结果。如果其中有两个,则为 \,否则它将“转义”后面的任何内容。因此,如果在单个释放字符之后有一个定界符,则不算数。但是两个释放字符解析为一个释放字符文字,所以下面的分隔符应该被认为是一个分隔符。因此,如果在定界符之前有奇数个释放字符,则会被忽略。对于 0 或偶数,它是一个分隔符。因此,在下面的代码示例中:
?: <- : is not a delimiter
??: <- : is a delimiter
???: <- : is not a delimiter
????: <- : is a delimiter
这是显示什么不起作用的示例代码。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPattern
{
public static void main(final String[] args)
{
final Matcher m = Pattern.compile("(\\?\\?)*[^\\?]\\:").matcher("a??:b:c");
m.find(0);
System.out.println(m.end());
}
}