1

私は正規表現を持っています

\|\|(\d+)(?=\|\|(?:(?!\|\|\d+\|\|)[\s\S])*jambura)

作業サンプル
誰かが正規表現を使用してすべての可能な組み合わせを見つけるのを手伝ってくれますか

詳細: 現在の正規表現は WIDEST MATCHES (特定のページ内) をキャプチャできますが、埋め込まれた/部分文字列パターンをキャプチャすることはできません。例: 正規表現は ||1|| をキャプチャできます。為に

 ||1||     
 Jam Jam jambura jadu tu sikh jambura

しかし、それをキャプチャすることはできません

 ||1||     
 Jam Jam jambura

基本的に、特定の単語が出現するページ番号を見つけることができるパターンを書きたいと思います。そのため、ページ ||1|| で「jambura」という単語が 2 回出現した場合、2 つの一致をキャプチャできるはずです。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これは私のために働く

var str='||1|| Jam Jam jambura jadu tu sikh jambura';
reg = /(?!\|\|(\d+)\|\||jambura).+?jambura/g;
re = /(?![\|]+)\d+(?=[\|]+)/
alert('page '+str.match(re)+': '+str.match(reg).length+' matches');

フィドルを試す

アイデアは、最初に一致し\|\|\d+\|\|、次にのみjumbaraです。実は、解決策を見つけるのに半夜を費やしたので、なぜ?!ここで使い始めたのか覚えていませんが、うまくいきます

于 2013-07-10T17:54:47.400 に答える