0

この投稿^.*(?!http).*$によると、 string を含まないすべての行を検索するために使用しようとしましhttpたが、うまくいきませんでした。

文章:

"NetworkError: 404 Not Found - http://wap-uat01.webuat.opg/finance/img/arrow.gif"
arrow.gif
GET http://wap-uat01.webuat.opg/site/brknews/xml/focus/focus_finance.xml?dummy=1372124875337
404 Not Found
        19ms    
xui-2.0.0.js(1221 line)
GET http://wap-uat01.webuat.opg/site/fin/xml/delay/topten/topStock_stock_up.xml?dummy=1372124875339
404 Not Found
        23ms    
xui-2.0.0.js(1221 line)
GET http://wap-uat01.webuat.opg/site/fin/xml/delay/topten/topStock_stock_down.xml?dummy=1372124875341
404 Not Found
        22ms    
xui-2.0.0.js(1221 line)
GET http://wap-uat01.webuat.opg/site/fin/xml/hotStock/fin_hotstock_utf8.xml?dummy=1372124875342
404 Not Found
        27ms    
xui-2.0.0.js(1221 line)
GET http://wap-uat01.webuat.opg/site/fin/xml/delay/index/u_HSI.xml?dummy=1372124875343
404 Not Found
        32ms    
xui-2.0.0.js(1221 line)
GET http://wap-uat01.webuat.opg/site/fin/xml/delay/index/u_HSCEI.xml?dummy=1372124875345
404 Not Found
        32ms    
xui-2.0.0.js(1221 line)
GET http://wap-uat01.webuat.opg/site/xml/polling.xml?dummy=1372124875346

この問題について何か考えはありますか?ありがとう。

ライブ デモ: http://regexr.com?35b85

4

1 に答える 1

1

まず、探している方法でテストするには、「複数行」モードをオンにします。それ以外の^場合、文字はすべてのテキストの始まりを示します。(また、dotall がないと、.*シーケンスは新しい行を超えませんが、複数行モードがオンの場合、dotall は必要ありません。)

この式はあなたが望むことを行うべきだと思いますが、そのページでは機能していません (私の推測では、改行を強調表示する問題が原因であると思われます)。

^(?!.*?http).*$

ただし、ここでは機能しています:

alert(
    /^(?!.*?http).*$/gm.exec('abhttpc\nq')
)

空行が必要ない場合は、上記の正規表現を次のように置き換えることができます。

^(?!.*?http).+$

そして、それはあなたがおそらく探している結果を示しています: http://regexr.com?35b8h

私たちの表現との違いは、あなたの表現では、「http」が後に続かない任意の数の文字とその後の任意の数の文字を見つけることができるということです。したがって、行の場合:

"NetworkError: 404 Not Found - http://wap-uat01.webuat.opg/finance/img/arrow.gif"

...あなたの表現

^.*(?!http).*$

http...直後に遭遇することなく、つまり"NetworkError: 404 Not Found -(つまり、スペースの前で停止する)可能な限り進み、それを受け入れてから、最終http://wap-uat01.webuat.opg/finance/img/arrow.gif"コード(つまり、スペースで始まるコード)を続行し、すべて行末への道。

ただし、変更したコードでは、「http」が行頭以降のどこかにある場合を除外し、見つからない場合は行末までのすべての文字を結果に含めます (覚えておいてください)。(?!...)チェックは実際には文字を消費しませんでした) :

^(?!.*?http).+$
于 2013-06-25T03:02:34.207 に答える