0

簡単な質問があります。二重引用符または < および > 文字シーケンスで囲まれていない文字列を一致させるにはどうすればよいですか?

例。このリンクを取得しました。また、二重引用符で囲まれている場合は一致させたくありません。

((https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])

[^"] を最初と最後に置くと、これは機能しません。

([^"](https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|][^"])

二重引用符で囲まれていないリンクは、二重引用符以外で開始しない限り一致しないためです。

4

3 に答える 3

0

Esailija が示唆したように、正規表現を ^ と $ で囲むとうまくいきます。コンソールでこれを試してください。裸の URL に一致する正規表現は次のとおりです。

> ' http://www.something.com '.match(/^((https?|ftp|ファイル)://[-A-Z0-9+&@#/%?=~_|!:, .;]*[-A-Z0-9+&@#/%=~_|])$/i)

[" http://www.something.com ", " http://www.something.com ", "http"]

ここでは、二重引用符または山かっこで囲まれた URL と一致していません。

>'" http://www.something.com "'.match(/^((https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|! :,.;]*[-A-Z0-9+&@#/%=~_|])$/i)

ヌル

>'> http://www.something.com <'.match(/^((https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|! :,.;]*[-A-Z0-9+&@#/%=~_|])$/i)

ヌル

Esailja が提案したことを繰り返しているだけなので、この回答を選択しないでください。

于 2013-08-11T20:00:00.663 に答える