كيفية تطابق هذا النوع من البناء؟
-
05-07-2019 - |
سؤال
وايم القيام تحليل وهذا النوع من النصوص التي أريد لمطابقة ومن ثم جعلها باطلة كما يلي: -
<tr class="label-BGC"><td colspan="4">any kind of text here</td></tr>
وأريد أن تطابق كل سطر يحتوي على "<tr class="label-BGC"><td colspan="4">any text</td></tr>"
والمساء لها هنا، وذهني-البطارية تماما أسفل
وما ايم تحاول القيام به هو: -
$patterns='<td colspan="4">'.stristr($parsed,'[^a-z0-9_- $]').'</td></tr>';
$replacements=' ';
$parsed = str_replace($patterns, $replacements, $parsed);
و$ تحليل وتحتوي على البيانات كله أن ايم تحليل.
قانون بلدي لا يعمل أي شخص يمكن أن تساعدني مع بعض الاقتراحات هنا!
المحلول
وحاول شيئا بسيطا مثل هذا:
$parsed = preg_replace('{<tr class="label-BGC"><td colspan="4">.*?</td></tr>}',
$replacements, $parsed);
وو. مباريات أي حرف، و* يجعل من تطابق 0 كثير، و؟ توقف كونها -i.e. الجشع وسوف تتوقف في التسلسل الأول، وليس الماضي ممكن واحد.
نصائح أخرى
وحاول القيام بما يلي:
preg_replace("`\s*<tr\s+class\s*=\s*"label-BGC"\s*>\s*<td\s+colspan\s*=\s*"4"\s*>.*?</td\s*>\s*</tr\s*>\s*`i", "", $content);
وربما تكون جميع مطابقة \s
قليلا مبالغة، لكنه متسامح جدا إذا كان هذا الدخل يأتي من مستخدم.
وعلى خلاف ذلك، ربما يمكنك فقط الحصول على التخلص من
preg_replace("`<tr class="label-BGC"><td colspan="4">.*?</td></tr>`i", "", $content);
لا تنتمي إلى StackOverflow