PHP düzenli ifadeler kullanarak hiçbir deneyimi var, bu yüzden genellikle str_replace dizi (), substr (), strpos (), strstr () vb (siz anladınız) kullanarak bazı kıvrık fonksiyon yazmak.
Ben bu doğru yapmak istiyorum bu sefer, ben bunun için bir regex kullanmak gerekiyor biliyorum, ama (Ereg veya gebelik) kullanmak için ne kadar karıştı, ve sözdizimi tam olarak nasıl olmalıdır.
NOTE: I am NOT parsing HTML, or XML, and sometimes I will be using delimiters other than (for example, | or ~ or [tag] or ::). I am looking for a generic way to do a wildcard replace in between two known delimiters using regex, I am not building an HTML or XML parser.
Ne gerek bu yerini bir regex olduğunu:
<sometag>everything in here</sometag>
Bu ile:
<sometag>new contents</sometag>
Ben biraz çevrimiçi belgelerine okudum, ama kafam karıştı, ve regex uzmanlar basit bir çözüm patlatabilir içinizden birini umuyorum. Ben, bir işleve böyle bir şey değerlerini geçecek şüpheli:
$new_text = swapText ( "<sometag>", $the_new_text_to_go_into_the_dag );
function swapText ( $in_tag_with_brackets_to_update, $in_new_text ) {
// define tags
$starting_tag = $in_tag_with_brackets_to_update;
$ending_tag = str_replace( "<", "</", $in_tag_with_brackets_to_update) );
// not sure if this is the proper regex match string or not
// and/or if any escaping needs to be done on the tags
$find_string = "{$starting_tag}.*{$ending_tag}";
$replace_with_string = "{$starting_tag}{$in_new_text}{$ending_tag}";
// after some regex, this function should return new version of <tag>data</tag>
}
Teşekkürler.