Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-查找文本中的第一个链接_Regex_Actionscript 3 - Fatal编程技术网

Regex 正则表达式-查找文本中的第一个链接

Regex 正则表达式-查找文本中的第一个链接,regex,actionscript-3,Regex,Actionscript 3,我使用下面的正则表达式来查找文本中的第一个链接。目前,此版本号被误解为链接: ver.1.0 xx.11 v1.2 RegExp: var findLink:RegExp = /([äöüÄÖÜa-zA-Z0-9\-\:\/]{2,}+\.[\*\!\'\(\)\;\:\@\&\=\$\,\?\#\%\[\]\~\-\+\_äöüÄÖÜa-zA-Z0-9\/\.]{2,}+)/g var getLink = themessage.text.match(findLink) trace(g

我使用下面的正则表达式来查找文本中的第一个链接。目前,此版本号被误解为链接:

ver.1.0
xx.11
v1.2
RegExp:

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 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。

您可以使用正则表达式:

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的URL,则应使用此操作来获取至少包含一个点的单词:

/ ([a-z\:\/]+\.[a-z\.]+) /g
至少一个小写字母:和/ 圆点
至少有一个小写字母和。

可以使用正则表达式:

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的URL,则应使用此操作来获取至少包含一个点的单词:

/ ([a-z\:\/]+\.[a-z\.]+) /g
至少一个小写字母:和/ 圆点
至少有一个小写字母和。

仅用于标识字符串中的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(" "));

对于仅识别字符串中的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(" "));

如何向RegExp添加第二个点(如果有)后的字符必须是a-z且至少有2个字符的条件?因此
example.co
www.example.co
起作用,但
example.1
1.example.a
不被解释为URL。谢谢
+
量词是
{1,}
-的快捷方式,因此要最少有两个字符,请将
+
更改为
{2,}
-但是,请注意,您可以有一个字符域段(例如
i.imgur.com
),当然IP地址可以以单个数字开始和结束。请仔细查看此答案,它与
[markdown]等URL不匹配(http://whatever.com)
在两个正则表达式中都不需要转义,最后一个正则表达式将完全匹配非url模式,如
:/:…
,但由于空间要求,无法匹配连字符url,如
experts exchange.com
-或再次匹配(它是一个空格-char 32-不是任何空格,是内容开头的URL,或者前面/后面有一个制表符或换行符。我如何向我的RegExp中添加第二个点后面的字符的条件(如果有)需要是a-z并且至少有2个字符?这样
example.co
www.example.co
可以工作,但是
example.1
1.example.a
不会被解释为URL。谢谢!
+
量词是
{1,}
-因此,为了至少有两个字符,请将
+
更改为
{2,}
-但是,请注意,您可以有一个字符的域段(例如
i.imgur.com
),当然IP地址可以以单个数字开头和结尾。只要仔细看看这个答案,它与
等URL不匹配[降价](http://whatever.com)
在两个正则表达式中都不需要转义,最后一个正则表达式将完全匹配非url模式,如
:/:…
,但由于空间要求,无法匹配连字符url,如
experts exchange.com
——或者再次匹配(它是一个空格-char32-而不是任何空格,是内容开头的URL,前面/后面是制表符或换行符。