Причиной «addPane» назначается это из-за директивы <pane>
.
Директива pane
делает require: '^tabs'
, которая помещает объект контроллера таблеток из родительской директивы в функция ссылки.
addPane
присваивается this
, так что функция ссылки pane
может ее видеть. Затем в функции pane
link addPane
является просто свойством контроллера tabs
, и это всего лишь tabsControllerObject.addPane. Таким образом, функция связывания указателей панели может получить доступ к объекту контроллера таблеток и, следовательно, получить доступ к методу addPane.
Надеюсь, что мои объяснения достаточно ясны. Это трудно объяснить.
Вам не нужно использовать регулярные выражения. как насчет этого
String x = "Retrying for error: [[\"billing\",\\{u'non_field_errors': [u'Invalid payment email provided']}\"]]";
String c = x.replace("Retrying for error: ","");
String g = c.substring(c.lastIndexOf('[')+1);
String v = g.substring(0, g.indexOf(']'));
System.out.println(v);
это печатает
u'Invalid payment email provided'
теперь ваши журналы имеют несколько экземпляров Retrying for error:
? Кроме того, это
"Retrying for error: [[\"billing\",\\{u'non_field_errors': [u'Invalid payment email provided']}\"]]";
представляет одну строку в ваших журналах?
Основная идея такова: если каждая строка в вашем файле журнала имеет только один экземпляр из Retrying for error:
, то вы можете легко анализировать журнал по одной строке за раз и итеративно удалять ненужные данные.
Вы можете использовать следующее регулярное выражение:
Retrying for error:.*\[u'([^']+)
См. Демонстрацию регулярных выражений .
Подробности
Retrying for error:
- литеральная подстрока .*
- любые 0+ символов, кроме символов разрыва строки, как можно больше \[u'
- подстрока [u'
([^']+)
- Группа захвата № 1 (значение matcher.group(1)
): 1+ символов, отличных от '
. См. Демонстрацию Java :
String unescapedStr = "Retrying for error: [[\"billing\",\\{u'non_field_errors': [u'Invalid payment email provided']}\"]]";
String pattern = "Retrying for error:.*\\[u'([^']+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(unescapedStr);
if (m.find()) {
System.out.println(m.group(1));
}
// => Invalid payment email provided