У меня есть следующее регулярное выражение (длинное, я знаю):
(?-mix:((?-mix:(?-mix:\{\%).*?(?-mix:\%\})|(?-mix:\{\{).*?(?-mix:\}\}?))
|(?-mix:\{\{|\{\%)))
, которое я использую для разделения строки. Он правильно совпадает с C #, но когда я переместил код на Java, он не совпадает. Есть ли какая-то особенность этого регулярного выражения, предназначенная только для C #?
Исходный код создается как:
String source = Pattern.quote("{% assign foo = values %}.{{ foo[0] }}.");
В C # это:
string source = @"{% assign foo = values %}.{{ foo[0] }}.";
Версия для C # выглядит так:
string[] split = Regex.split(source, regex);
В Java я пробовал оба:
String[] split = source.split(regex);
, а также
Pattern p = Pattern.compile(regex);
String[] split = p.split(source);