Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 删除url和电子邮件_Regex_Email_Url - Fatal编程技术网

Regex 删除url和电子邮件

Regex 删除url和电子邮件,regex,email,url,Regex,Email,Url,我必须从表单字段中删除URL。我在网上找到了这个正则表达式,但它并没有那么好用 @?(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/? 它确实会从电子邮件中删除所有URL,包括@符号(我想要),但它也会删除任何带有和2个字符的内容,比如我的电子邮件:bia。migueis@gmail.com它匹配整个内容,剥离后返回空。我需要脱衣: http://www.example.com https://www.example.com

我必须从表单字段中删除URL。我在网上找到了这个正则表达式,但它并没有那么好用

@?(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?
它确实会从电子邮件中删除所有URL,包括
@
符号(我想要),但它也会删除任何带有
和2个字符的内容,比如我的电子邮件:
bia。migueis@gmail.com
它匹配整个内容,剥离后返回空。我需要脱衣:

http://www.example.com
https://www.example.com
www.example.com
example.com

bia.migueis@gmail.com --> bia.migueis

应该在左侧

您可以在末尾添加一个NOT@符号

@?(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?[^@]

bia.migueis,你只需要url

此已清理版本的正则表达式将捕获组1中的url:

(?:@|https?://)?([\da-z.-]+\.[a-z.]{2,6})\b(?!@)
输入:

http://www.example.com
https://www.example.com
www.example.com
example.com
bia.migueis@gmail.com --> 
bia.migueis
www.example.com
www.example.com
www.example.com
example.com
gmail.com
第1组捕获:

http://www.example.com
https://www.example.com
www.example.com
example.com
bia.migueis@gmail.com --> 
bia.migueis
www.example.com
www.example.com
www.example.com
example.com
gmail.com
看看你的标签,我发现你对Java和Javascript最感兴趣

Java中的第1组:

String ResultString = null;
try {
    Pattern regex = Pattern.compile("(?:@|https?://)?([\\da-z.-]+\\.[a-z.]{2,6})\\b(?!@)");
    Matcher regexMatcher = regex.matcher(subjectString);
    if (regexMatcher.find()) {
        ResultString = regexMatcher.group(1);
    } 
} catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
}
Javascript中的组1:

var myregexp = /(?:@|https?:\/\/)?([\da-z.-]+\.[a-z.]{2,6})\b(?!@)/;
var match = myregexp.exec(subject);
if (match != null) {
    result = match[1];
} else {
    result = "";
}

我混合了Ld00d和zx81的答案,并让它按照我想要的方式工作

(?:@|https?:\/\/)?([\da-z.-]+\.[a-z.]{2,6})\b[^@]

您使用的是哪种编程语言?coldfusion。只需使用RereplaceNoCase,这几乎可以实现。当用棒测试时。ba@test.co.uk它匹配第一部分(bar.ba)和第二部分(@test.com.uk)。我正在使用regexr进行测试these@bia.migueis感谢edge案例,添加了一个负面展望来修复该问题。非常感谢:D也比我所有的普通正则表达式干净得多lol@bia.migueis很高兴它成功了,谢谢你的反馈,很高兴与你交谈。这几乎奏效了。使用bia进行测试时。migueis@gmail.com它匹配第一部分(bia.migueis)和第二部分(@gmail.com)。我正在使用regexr来测试这些