Articles of regex

php / regex: как заменить часть найденного шаблона, но оставить остальное как есть?

Как заменить подстроку в найденном шаблоне, но оставив остальное как есть? (EDIT: реальный случай, конечно, более сложный, чем приведенный ниже пример, мне нужно сопоставить события в тегах xml, поэтому я должен использовать регулярное выражение!) Предположим, я хочу изменить происхождение буквы «X» в слове на букву «Z». я хочу aaXaa aaX Xaa становиться aaZaa aaZ Zaa […]

Как проверить, имеет ли строка хотя бы одну букву, номер и специальный символ в php

В настоящее время я пишу небольшой скрипт, который проверяет содержимое каждой строки. Мне было интересно, что REGEX должен удостовериться, что строка имеет букву (верхнюю или нижнюю), цифру и специальный символ? Вот что я знаю до сих пор (чего мало): if(preg_match('/^[a-zA-Z0-9]+$/i', $string)): Помогите было бы здорово! Спасибо!

Regexp для извлечения всех ссылок и якорных текстов из HTML

Я хотел бы, чтобы одно или несколько регулярных выражений могли: 1) Возьмите html большой страницы. 2) Найдите URL-адреса, содержащиеся во всех ссылках, например: <a href="http://example1.com">Test 1</a> <a class="foo" id="bar" href="http://example2.com">Test 2</a> <a onclick="foo();" id="bar" href="http://example3.com">Test 3</a> И так далее, он должен извлечь URL-адрес, содержащийся в атрибуте 'href' независимо от того, что происходит до или после […]

Как извлечь слова, начиная с хэш-тега (#) из строки в массив

У меня есть строка, в которой есть хэш-теги, и я пытаюсь вытащить теги. Я думаю, что я довольно близко, но получаю многомерный массив с одинаковыми результатами $string = "this is #a string with #some sweet #hash tags"; preg_match_all('/(?!\b)(#\w+\b)/',$string,$matches); print_r($matches); который дает Array ( [0] => Array ( [0] => "#a" [1] => "#some" [2] => […]

Получить строку между двумя строками

Моя строка: «reply-234-private», я хочу получить номер после «reply-» и до «-private», это «234». Я попытался с помощью следующего кода, но он возвращает пустой результат: $string = 'reply-234-private'; $display = preg_replace('/reply-(.*?)-private/','',$string); echo $display;

Как вы обрезаете пробел в начале и конце каждой новой строки с помощью PHP или регулярного выражения

Как вы обрезаете пробел в начале и в конце каждой новой строки с помощью PHP или регулярного выражения? Например, $text = "similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga "; Должно быть, $text = "similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum […]

Разбор строки с рекурсивными круглыми скобками

Я пытаюсь проанализировать строку со следующей структурой в PHP: a,b,c(d,e,f(g),h,i(j,k)),l,m,n(o),p Например, «настоящая» строка будет: id,topic,member(name,email,group(id,name)),message(id,title,body) Мой конечный результат должен быть массивом: [ id => null, topic => null member => [ name => null, email => null, group => [ id => null, name => null ] ], message => [ id => null, title […]

Кажется, что preg_match достигает предела при использовании двух совпадений

Я столкнулся с нечетной проблемой. кажется, что я достигаю своего рода предел с preg_replace, пытаясь использовать два совпадения, используя php-5.3.3 // works fine $pattern_1 = '?START(.*)STOP?'; $string = 'START' . str_repeat('x',9999999) . 'STOP' ; preg_match($pattern_1, $string , $matchedArray ) ; $pattern_2 = '?START-ONE(.*)STOP-ONE.*START-TWO(.*)STOP-TWO.*?'; // works fine $string = 'START-ONE this is head stuff STOP-ONE START-TWO' […]

Согласование всех трех видов комментариев PHP с REGEX

Я новичок в REGEX, и мне нужна помощь. Мне нужно сопоставить все три типа комментариев, которые могут иметь PHP: # Single line comment // Single line comment /* Multi-line comments */ /** * And all of it's possible variations */ Что-то, о чем я должен упомянуть, я делаю это, чтобы узнать, есть ли закрывающий тег […]

preg_match error Неизвестный модификатор '{'

Что случилось с этим? if((preg_match('[a-zA-Z]{1,7}+',$_POST['naam'])) and (preg_match('[^\@\#\<\>\&\*\/]+[a-zA-Z0-9]+!',$_POST['password']))) в первом регулярном выражении я хочу строку длиной 1-7, содержащую только буквенные буквы. Во втором регулярном выражении я хочу строку, содержащую буквы и цифры с помощью! в конце.