PHPでの正規表現の書き方

WBOY
WBOYオリジナル
2016-06-23 13:38:07985ブラウズ

原文には次の可能性があります:
[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"]中華人民共和国[/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'

牛掰

お世話になります。結論

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP開発フォーム次の記事:PHP開発フォーム