ホームページ >バックエンド開発 >PHPチュートリアル >PHPでの正規表現の書き方
原文には次の可能性があります:
[font="microsoft yahei" onclick="alert('b')"]中華人民共和国[/font]
[font="abc" onclick="alert('b ') "]中華人民共和国[/font]
[font="microsoft yahei"]中華人民共和国[/font]
[font=abc onclick="alert('b')"]中華人民共和国[ /font]
[ font=abc]People's Republic of China[/font]
この方法で抽出したいのですが、 font= 以降の文字のみを抽出しますが、onclick 以降の文字は含めません (必ずしも onclick である必要はありません)。 onfocus などの可能性があります)。中華人民共和国という言葉。
これは、フォント名のみを取り出すことを意味します。フォント名には引用符を含めることができますが、フォントの後に文字がある場合は取り出されません。
正規表現の書き方を見つけてください。
このように書くとonclickと以下の文字が得られます。
/[font=(.*?)](.*?)[/font]/i
/[font="([^"]+?)"。 +?](.*?)[/font]/i
試してみる
/[font="([^"]+?)".+?](.*?)[/font]/i
試してみる
echo preg_replace('/[font="([^"]+?)".*? ] (.*?)[/font]/i', '$1@@@@$2', '[font="microsoft yahei"]中華人民共和国[/font]');
echo preg_replace(' /[ font="([^"]+?)".*?](.*?)[/font]/i', '$1@@@@$2', '[font="microsoft yahei"]People's中華民国 [/font]');
さらに、一致できない別の状況があります:
[font=microsoft]People's Republic of China[/font]
この場合、フォントの両側に引用符がありません。自分でも試してみましたが成功しませんでした。ぜひもう一度ご覧ください。ありがとう。
[^"]
[] 内部は一連の文字です
^ は他のものを除きます
二重引用符を除く他の文字が一致することを意味します。これはエスケープです。実際には省略できます
- -------------------------------------------------- -- ----------------------------
[font=microsoft]中華人民共和国[/font]
'/[font= "*( [^"]+)"*.*?](.*?)[/font]/i'
牛掰
お世話になります。結論