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
Html Actionscript 3.0 Reg Exp查找第一个URL,忽略电子邮件_Html_Regex_Actionscript 3_Email - Fatal编程技术网

Html Actionscript 3.0 Reg Exp查找第一个URL,忽略电子邮件

Html Actionscript 3.0 Reg Exp查找第一个URL,忽略电子邮件,html,regex,actionscript-3,email,Html,Regex,Actionscript 3,Email,我有一段代码,其中有一个带有string.search()的循环来解析HTML字符串。其目的是寻找任何有效的URL,并用HREF标记适当地围绕每个URL,同时忽略任何其他内容,如电子邮件地址。问题是,无论我如何修改正则表达式,它都会将@符号后的电子邮件地址部分踢回并高亮显示,或者高亮显示或忽略所有内容 一个示例字符串是: “黄鼠狼油脂:weaselgrease@weasel.grsvs weaselife.weasel.grs[12:41:33 AM]“ 其中“weaselife.weasel.

我有一段代码,其中有一个带有string.search()的循环来解析HTML字符串。其目的是寻找任何有效的URL,并用HREF标记适当地围绕每个URL,同时忽略任何其他内容,如电子邮件地址。问题是,无论我如何修改正则表达式,它都会将@符号后的电子邮件地址部分踢回并高亮显示,或者高亮显示或忽略所有内容

一个示例字符串是:

“黄鼠狼油脂:weaselgrease@weasel.grsvs weaselife.weasel.grs[12:41:33 AM]“

其中“weaselife.weasel.grs”将被标识为正确的URL,并且weaselgrease@weasel.grs”他说

我目前拥有的代码是
/([fh]t{1,2}ps?:\/\/)?[\w-]+\.\w{2,4}/

我知道这很简单,但还不需要复杂

我试过一个有条件的方法,但一无所获。我可能只是错过了一些东西,但我的搜索,甚至玩乐高玩具都没有让我靠近

最终,我将让它执行以下操作:
在字符串中标识有效URL的索引
如果是电子邮件则忽略
如果它只是一个IP地址,则忽略(没有前缀http://和尾随斜杠)


但是我很高兴能得到一些帮助,我需要做些什么才能让它忽略电子邮件地址。

没有适当协议(即http、https、ftp)的URL无法验证为正确的URL,因为这意味着几乎所有包含
(点)的URL都是有效的URL

因此,如果您不使用该协议,则无法正确检查它是url还是电子邮件。例如:

句子结束。新句子->
句子。新的
是您案例中的有效url

weaselgrease@weasel.grs->
@
之前的所有内容都将被忽略,
weasel.grs
是有效的url

不合适的url也可以。我不介意“土豆、蛋糕、小吃、相扑”是一对。我想做的就是让它这样,如果@出现在第一个“单词”之前,它会认为该字符串不匹配。所以“@big.chocolate.one”和big@chocolate.one如果你仔细考虑你的想法,你就会发现问题所在——你开始用点和空格来回答你的问题<代码>big@chocolate.one
实际上是巧克力的一个匹配项。因此,您要查找由标点符号分隔的整组字符,并搜索
@
是否在其中。我可以为你写,但我认为这是一个混乱,无法正常工作。当我环顾四周时,我看到了一些方法,可以通过在正则表达式结尾处带有“向前看”和“向后看”的字符串进行搜索,以使搜索对特定的单词或字符具有独占性。我在AS中遇到的问题是lookbehinds必须是零宽度,因此我不能在示例显示的地方使用*或+(显然,示例是针对另一种语言的)。我真的很想看看是否有一种方法可以在常规actionscript代码中实现它,而不必发出if-then,但我想这是我必须采取的路线。谢谢你的帮助!