一部のテキストにURLと空白のみが含まれ、他に何も含まれていないかどうかを確認する正規表現を作成しようとしています:
http://www.google.com http://www.stackoverflow.com
一致しますが、次のとおりです。
http://www.google.com and http://www.stackoverflow.com
一致しません。
これは可能ですか?
この正規表現を使用できます (http:// で始まるスペースの間にある場合のみテストします):
/^(?:https?:\/\/\S++\s*+)++$/ =~ text
words.split.all? { |word| word.match(/^http:/) }
本当に正規表現を使用したい場合は、これを試してください:
(?< protocol>\w+):\/\/(?< domain>[\w@][\w.:@]+)\/?[\w\.?=%&=\-@/$,]*
「プロトコル」と「ドメイン」の前のスペースを削除してください。
文字列を空白で分割し、各文字列が上記の正規表現と一致するかどうかを確認します。
それが役に立てば幸い!
これは任意の URL をチェックします。文字列は、URL 区切り文字として単一の空白のみを含む URL である必要があります。
(((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)\s){1,}((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)$
参照:
http://www.regular-expressions.info/reference.html
http://regexlib.com/Search.aspx?k=URL&AspxAutoDetectCookieSupport=1