我正在使用下面的正则表达式来查找文本中的第一个链接。目前,此版本号被误解为链接:
ver.1.0
xx.11
v1.2
正则表达式:
var findLink:RegExp = /([äöüÄÖÜa-zA-Z0-9\-\:\/]{2,}+\.[\*\!\'\(\)\;\:\@\&\=\$\,\?\#\%\[\]\~\-\+\_äöüÄÖÜa-zA-Z0-9\/\.]{2,}+)/g
var getLink = themessage.text.match(findLink)
trace(getLink[0])
示例文字:
Lorem Ipsum ver.1.0只是打印v1.2的虚拟文本xx.11 和排版行业。 example.com(example.com只能作为链接找到)
如何将条件添加到我的RegExp中,第二个点后面的字符(如果有的话)需要是a-z并且至少有2个字符?因此example.co或www.example.co可以工作,但是example.1或1.example.a不会被解释为URL。
答案 0 :(得分:1)
您可以使用正则表达式:
var find:RegExp = / (https?\:\/\/[^ ]*)/g;
trace(myText.match(find));
正则表达式将查找
a whitespace
http
s but not necessarly
://
a bunch of characters that are not whitespaces
()用于界定RegExp应捕获的字符组。最后的g参数告诉RegExp不要停止看第一场比赛。
附录
如果你想匹配一个没有http的网址,这应该可以获得一个至少有一个点的单词:
/ ([a-z\:\/]+\.[a-z\.]+) /g
至少一个小写字母字符,:和/ 一个点 至少有一个小写字母和。
字符答案 1 :(得分:0)
对于仅识别字符串中的URL,这似乎对我有用。
/([fh]t{1,2}ps?:\/\/)?[\w-]+\.\w{2,4}/
它标识了HTTPS,HTTP和FTP URL,以及没有任何前缀的URL。
var string:String;
var istr:int;
istr = string.search(/([fh]t{1,2}ps?:\/\/)?[\w-]+\.\w{2,4}/);
trace(string.slice(istr).indexOf(" "));