В: Я хочу, чтобы регулярное выражение проверяло URL, но я хочу разрешить этому символу (~) тильду
что-то вроде этого URL:
http://stackoverflow.com/questions/~/ разрешая http или без http
http://stackoverflow.com/questions/~/
http
заранее спасибо
EDIT
Наконец-то я нашел идеальный: (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])? но я хочу позволить пользователю вводить URL с протоколом или без него, чтобы избежать путаницы, как это сделать.
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
Чтобы разрешить непоследовательные тильды:
\w+([-+.'~]\w+)*
Чтобы разрешить тильды в любом месте:
[\w~]+([-+.'][\w~]+)*
Существует очень хороший сайт регулярных выражений здесь , где вы можете получить практически любые регулярные выражения. Думаю, это было бы полезно для вас.
Я не уверен, чего ты хочешь.Но
\w+([~'\.]\w+)+
Действителен для
justname'com just_name~com justname.com
Недействителен для
justname just-name-com
Если вы используете
\w+([~]?)\w+\.\w+
justname.com just~name.com
Недействительно для
justname'com just_name~com just-name-com
вы можете попробовать это:
\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]
если вам не нужны HTTP, FTP ... вы можете снять его как:
\b[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]
С уважениемНТН.