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

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

WBOY
リリース: 2016-06-23 14:17:13
オリジナル
1009 人が閲覧しました

<dl class="w1" style="width:500px"><dt>转正工资:</dt><dd>2000-3000元<!--2000-3000元/月  -->,试用期薪资60%</dd></dl>
ログイン後にコピー



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


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

/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)/ius
ログイン後にコピー

/<dd>(.*?)(?:<\!\-\-.*?\-->)(.*?)<\/dd>/ius
ログイン後にコピー

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

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

$s=<<(.+?)<\!--.+?-->(.+?)<\/dd>/s',$s,$m);echo $m[1].$m[2];
ログイン後にコピー

2000-3000 元

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

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

通常の給与:< /dt>

<--2000-3000 元/月 -->

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

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

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

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

/
(.*?)(?:)(. *?)
/is

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

実際、これではないでしょうかとてもシンプルですか?
preg_match('/

(.*?)
/is',$s,$m);
echotrip_tags($m[1]);

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

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート