Я пытаюсь выполнить preg_match для извлечения атрибута SRC из первого тега img в статье (в этом случае, сохраненный в $row-> introtext).
preg_match('/\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\']*)/i', $row->introtext, $matches);
Вместо того, чтобы получить что-то как
images/stories/otakuzoku1.jpg
от
<img src="images/stories/otakuzoku1.jpg" border="0" alt="Inside Otakuzoku's store" />
Я становлюсь справедливым
0
regex должен быть правильным, но я не могу сказать, почему это, кажется, соответствует атрибуту границы а не атрибуту src.
С другой стороны, если у Вас было терпение читать настолько далеко, не пропуская прямо к полю ответа и вводя 'использование синтаксический анализатор HTML/XML', может хорошее учебное руководство для одного быть рекомендованным, поскольку я испытываю затруднения при нахождении один вообще, это применимо к PHP 4.
PHP 4.4.7
Если вы не нуждаетесь в реализации INotifyPropertyChanged
для класса, к которому вы привязываетесь.
Кроме того, если требуется немедленное обновление предмета ListBox
, необходимо изменить его при вводе в TextBox
. По умолчанию свойство TextBox.Text
обновляет свой источник при потере фокуса, но это можно изменить, установив привязку StartSourceTrigger
на PropertyChanged
:
{Binding Source={...}, Path=Whatever, UpdateSourceTrigger=PropertyChanged}
-121--2748795- Ioc.Resolve по существу является образец локатора служб. Она имеет свое место, но не идеальна. Инжекция конструктора предпочтительна с точки зрения архитектуры, поскольку зависимости более явны, в то время как SL скрывает зависимости внутри класса. Это снижает тестопригодность и делает процесс более сложным, чем это необходимо.
Если позволите, я бы посоветовал вам прочитать мою серию о методах уменьшения связи кода, которая охватывает SL, DI и IoC.
-121--1143754-Неверное выражение. Попробуйте:
preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $row->introtext, $matches);
Обратите внимание на удаление скобок вокруг img и src и некоторые другие очистки.
Вот как это сделать со встроенными функциями (php >= 4):
$parser = xml_parser_create();
xml_parse_into_struct($parser, $html, $values);
foreach ($values as $key => $val) {
if ($val['tag'] == 'IMG') {
$first_src = $val['attributes']['SRC'];
break;
}
}
echo $first_src; // images/stories/otakuzoku1.jpg
Из Java 5
Scanner sc = new Scanner();
sc.useDelimiter("\\D+"); // skip everything that is not a digit
List<Coord> result = new ArrayList<Coord>();
while (sc.hasNextInt()) {
result.add(new Coord(sc.nextInt(), sc.nextInt()));
}
return result;
EDIT: Мы не знаем, сколько координат передано в строке coords
.
Из того, что я понимаю в вашем вопросе, видно, что вы хотите применить перестановку, указанную в списке
. Это делается путем указания другого списка
(давайте назовем его p
), который содержит индексы элементов исходного списка
, которые должны появиться в переставленном списке
. Затем с помощью p
можно создать новый список
, просто подставив элемент в каждой позиции на позицию, индекс которой находится в этой позиции, в p
.
def apply_permutation(lst, p):
return [lst[x] for x in p]
arr=list("abcde")
new_order=[3,2,0,1,4]
print apply_permutation(arr,new_order)
Печать ['d', 'c', 'a', 'b', 'e']
.
Фактически создается новый список
, но он может быть тривиально изменен для перестановки исходного «на месте».
Попробуйте:
include ("htmlparser.inc"); // from: http://php-html.sourceforge.net/
$html = 'bla <img src="images/stories/otakuzoku1.jpg" border="0" alt="Inside Otakuzoku\'s store" /> noise <img src="das" /> foo';
$parser = new HtmlParser($html);
while($parser->parse()) {
if($parser->iNodeName == 'img') {
echo $parser->iNodeAttributes['src'];
break;
}
}
, который произведет:
images/stories/otakuzoku1.jpg
Он должен работать с PHP 4 .x.