See You On The Other Side
Voices, a thousand, thousand voices
Whispering, the time has passed for choices
Golden days are passing over, yeah
Voices, a thousand, thousand voices
Whispering, the time has passed for choices
Golden days are passing over, yeah
Из строки «The {World {is}} beautifull» нужно достать максимальную подстроку ограниченную парными скобками.
Решение:
$string="The {World {is}} beautifull"; if (preg_match("#\{((?>[^{}]+)|(?R))*\}#", $string,$m)){ print "matched: ".$m[0]; }
Как-то появилась задача по написанию регэкспа, который выбирает из строки все, что заключено в кавычки, при этом надо учитывать, что внутри строки кавычки могут быть экранированы.
решение:
// сам regexp // /"(?>\\"|.)*?"/ $pattern= '/"(?>\\"|.)*?"/'; $string = 'some "text \"word\""'; if (preg_match($pattern,$string)){ print "TRUE"; }
Создание и заполнение документа excel используя openXML SDK.
SDK берем тут, скачиваем тот что поменьше. И подключаем библиотеки в наш проект.
До конца с форматом openxml и возможностями SDK я разобраться не успел, но создать простой лист и заполнить его данными получилось.
На выходе будем иметь вот это:
Подробнее »
Ну вот, мы и дожили до весны,
И сей факт очень приятен.
Регулярные выражения в java это мощный инструмент работы с текстом.
Возникла необходимость получить данные из формата json, стандартных классов не нашел. А для моей задачи возможности json_simple были избыточны.
И вот родился такой небольшой парсер.
public void parse(){ Pattern p = Pattern.compile("\\{GsearchResultClass=GimageSearch, width=([0-9]+?), height=([0-9]+?), imageId=(.+?), tbWidth=([0-9]+?), tbHeight=([0-9]+?), unescapedUrl=(.+?), url=(.+?), visibleUrl=(.+?), title=(.+?), titleNoFormatting=(.+?), originalContextUrl=(.+?), content=(.+?), tbUrl=(.+?)\\}"); Matcher m=p.matcher(this.str); while(m.find()) { System.out.println("1: " + m.group(1)); System.out.println("2: " + m.group(2)); System.out.println("3: " + m.group(3)); System.out.println("4: " + m.group(4)); System.out.println("5: " + m.group(5)); System.out.println("6: " + m.group(6)); System.out.println("7: " + m.group(7)); System.out.println("8: " + m.group(8)); System.out.println("9: " + m.group(9)); System.out.println("10: " + m.group(10)); System.out.println("11: " + m.group(11)); System.out.println("12: " + m.group(12)); System.out.println("13: " + m.group(13)); System.out.println("------------------------------"); } }
начав изучать этот фреймворк с наскоку не с разу понял как изменить контролер по умолчанию, догадывался что нужно чего-то вписать в файл конфигурации, но что понимал смутно. Прямого ответа гугл не дал, а он как оказалось был так близок.
в классе CWebApplication, есть публичное свойство defaultController, по умолчанию равное site, задать новое значение можно в файле конфигурации. Примерно так:
//config/main.php return array( //... 'defaultController'=>'otherControler', //... }
На заметку:
для доступа к интернету из виртуальной машины не через её NAT в правилах Outpost Firewall (v 7.) нужно прописать следующее.
в меню НАСТРОЙКИ — БРАНДМАУЭР — СЕТЕВЫЕ ПРАВИЛА — СИСТЕМНЫЕ ПРАВИЛА — НИЗКОУРОВНЕВЫЕ ПРАВИЛА
добавить 2 правила
1-ое
— где тип протокола IP (отметить протоколы)
— удаленый адрес (адрес виртуальной машины)
— разрешить
2-ое
— где тип протокола IP (отметить протоколы)
— локальный адрес (адрес виртуальной машины)
— разрешить