2016-10-11 16 views
2

私は約50%のケースで私が望むものをキャプチャする正規表現のパターンを持っていますが、それが一致しないケースが文字列のスペースと関係していることがわかりました。これは、javascriptのRegex BTWにあります。複雑な正規表現パターンはスペースを認識しませんか?

REGEXパターン:

Aを照合する

/\[url="https?:\/\/([a-z0-9-]+\.)*cnn\.com\/newsreel\/showreel\.php\?id=?([^\s]*[^.])?\"\]([^\s]*[^.])\[\/url\]/gi

STRINGS)[url="http://www.cnn.com/newsreel/showreel.php?id=977976"]Test123[/url]

B)今[url="http://www.cnn.com/newsreel/showreel.php?id=977976"]Test 1 2 3[/url]

私はトンを実行しようとした場合彼のパターンはAです、それはA-okで動作します。しかし、Bでは、すべてのスペースのために失敗します。

私は3番目のマッチグループ([^\s]*[^.])と関係がありますが、それはスペースをキャッチしていないと思います。誰も私はそれがスペースにも同様に得ることができる任意のアイデアを持っている?

ありがとうございました!

答えて

0
はつまり、あなたが .*(ゼロ以上の文字)で [^\s]*(ゼロ個以上の非空白文字)を置き換える

(.*[^.]) 

([^\s]*[^.]) 

からあなたの第三のマッチンググループを変更

これは、正規表現の使用方法に応じて、タブや改行などの他の空白文字も許可することに注意してください。これがあまりにも小さければ、[\S ]*(0個以上空白でないか、または通常のスペース文字)を選択できます。

+0

あなたはそれをクラックしました、多くの感謝! – Mark

+0

実際に私は余分な文字をキャプチャするより多くのテストで問題に遭遇しています。あなたは[\ S] *のあなたの他の提案をどのように使用しますか? – Mark

+0

3番目に一致するグループに '([\ S] * [^。])'を使用します。 –

関連する問題