1つの文字列で始まるが、* *別の文字列で始まらない正規表現にマッチする方法はありますか?

オーレルFichman:

私は、PythonのWebスクレイピングに精通取得しようとしていますので、私は、特定の機能のための外部リンクを見つけようとしています。ブックでは、私は単に「のhttp://」除去することにより、作者が実装これを読んでいる新しいリンクは、ドメイン名が先行することなく、ある新しい文字列を(含まれている場合は見て、文字列からと「のhttp://」 。

//ドメイン:ではなく「HTTP(S)で「HTTP」で始まるすべてのリンクと一致するように、どのような方法がある - 私は単にそれは私が疑問に思う作るんif文書くことができますが、私はこのコードが失敗する可能性がありますどのように見ることができます。 comの "?私は私が仕事だろうと思ったことを、多くの異なる正規表現のソリューションを試みたが、彼らがhaventは。たとえば、変数「部位」リンクアドレスが含まれています。

re.compile("^((?!"+site+").)^http|www*$"))
re.compile("^http|www((?!"+site+").)*$"))

私が得る結果は、単にhttpまたはWWWで始まり、それは私がするつもり何ではありませんすべてのリンクになります。繰り返しますが、私は、if文でこれだけの罰金を実装することができ、これは完全なブロッカーではない、結果をフィルタリングするが、私はそのような可能性のexistanceについて好奇心が強いです

任意の助けいただければ幸いです。私は、Webの周りに見えたが、私のユースケースに一致するものを見つけることができませんでした。

benterris:

ではなく、別のものと1つの文字列で始まる文字列に一致するには、このパターンを使用しshoud:

^(?!stringyoudontwant)stringyouwant.*

だからあなたの場合には、これは次のようになります。

^(?!https?:\/\/domain\.com)http.*

物事のこの種のために、あなたがチェックアウトすることができますhttps://regex101.comを複雑な正規表現を試すのに最適なインターフェースです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=365171&siteId=1