ホームページ >バックエンド開発 >PHPチュートリアル >定期的な問題についてアドバイスを求める

定期的な問題についてアドバイスを求める

WBOY
WBOYオリジナル
2016-06-23 14:17:131011ブラウズ

<dl class="w1" style="width:500px"><dt>转正工资:</dt><dd>2000-3000元<!--2000-3000元/月  -->,试用期薪资60%</dd></dl>



19791207a4e0a22c816ac020ecd8cae0 ではない 67bc4f89d416b0b8236eaa5f43dee742..82e295699cff932a4d4dabba39074c35 の間の内容を抽出したいのですが、[^...] で書くのは難しいようです。最初に 19791207a4e0a22c816ac020ecd8cae0 の内容を置き換えてから一致させることができます。さらに、正規表現を 1 つだけ使用して正常に一致するものはありますか?


ディスカッションへの返信(解決策)

/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)/ius

/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius

最初に一致させてから置き換える方が効率的かもしれません。

chinmo なぜこの通常のルールをうまく試すことができないのですか? テストしましたか?

$s=<<(.+?)<\!--.+?-->(.+?)<\/dd>/s',$s,$m);echo $m[1].$m[2];

2000-3000 元

、試用期間中は給与の 60%

chinmo なぜこの通常のルールを試してみることができないのですか?テストは成功しましたか?
それでは、どのようにテストしたのかわかりません
$s='81d44135fff7fde4b338a088ff35dcc7 73de882deff7a050a357292d0a1fca94通常の給与:ab36994ee5614b675a45c0c665150ffb

';
preg_match('/67bc4f89d416b0b8236eaa5f43dee742 (.*?)(?:cb0d040d3d1c352afcc7dd7da842cba6)(.*?)82e295699cff932a4d4dabba39074c35/ius',$s,$m) ;
echo $m[1]. $m[2];

とにかく、テストはうまくいきました

結果のスクリーンショット:

preg_match("/(.*?)(.* ?)/", $str,$arr);
echo $arr[2];

/67bc4f89d416b0b8236eaa5f43dee742(.*?)(?:ef5e220ed3aae7312b12bc34d9892bb9)(. *?)82e295699cff932a4d4dabba39074c35/is

u 修飾子は utf-8 でエンコードされたデータに対してのみ有効です
それに、中国語を処理していません

実際、これではないでしょうかとてもシンプルですか?
preg_match('/67bc4f89d416b0b8236eaa5f43dee742(.*?)82e295699cff932a4d4dabba39074c35/is',$s,$m);
echotrip_tags($m[1]);

不思議ではありません、私はちょうど gbk でした今エンコードしたら、表示できないのも不思議ではありません

Xuzuningさんの方法は良いですね。PHPにはstrip_tags関数があることが分かりました。これはとても便利です。

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