JavaScript - (?=exp) ゼロ幅の正の予測先読みアサーション、その使用方法、および機能しない理由
阿神
阿神 2017-05-19 10:27:51
0
5
694

'<img abc 123 width="168" height="300"'.match(/(?=(width="))168/)

width="123" にある 123 を文字列から抽出したいと考えています

まずは思いつくことをお話しさせてください。しかし、この操作は奇妙に感じます。何か良い方法はありますか

replace を使用してコールバックで取得します;

リーリー

または @ars_qu

のように リーリー
阿神
阿神

闭关修行中......

全員に返信(5)
小葫芦

js はアサーションのサポートが不十分なので、一致するグループを直接使用してください:

リーリー
いいねを押す +0
習慣沉默

JS は逆プリフェッチをサポートしていません

現在、ゼロ幅アサーションの前方参照、つまり、指定された単語 (または他の条件) で終わるテキストの検索をサポートしています。 --JS は現在サポートされています;

あなたの質問の要件は、指定された単語(または他の条件)が前にあるテキストを検索することです。 --JS は現在サポートされていません。

追伸: たとえ支持するとしても、あなたの書き方は間違っています! width の後の数値を見つけたい場合は、逆引き を使用する必要があります (C# または PHP で)
/(?<=width)d+/ です。 。 余分な不等号に注目してください。 /(?<=width)d+/。 注意多了一个小于号。
如果你想找width前面的数字,比如字符串是这样的"168width",这是用到的是正向预查,写法为 /d+(?=width)/幅の前の数字を見つけたい場合、たとえば「168width」のような文字列では、

前方参照

を使用します。これは、/d+(?=width)/のように記述されます。 > 。

標準的な実践 - グループのキャプチャ

🎜通常のキャプチャを使用することが、シナリオに最適な方法です。 🎜 リーリー
いいねを押す +0
大家讲道理

リーリー

いいねを押す +0
我想大声告诉你

width=".* を使用して数字を一致させることはできませんか?"

いいねを押す +0
小葫芦

js はゼロ幅アサーションなどの一部の正規表現をサポートしていないようです....

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート