Regex 删除url和电子邮件
我必须从表单字段中删除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
@?(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来测试这些