首页 新闻 会员 周边 捐助

正则表达式- 去除指定的字符串

0
悬赏园豆:30 [待解决问题]

比如一个字符串:email.aaa@sfsf.com

通过正则后只保留aaa@sfsf.com

简单的说,要去除开头指定的字符串!email. 这个字符串有可能有有可能没有。

我自己写的(?!email\.)+.+[\w]+

匹配后得到的是mail.sfsfsfsf@aa.com,只去掉了开头的e单词,难道(?!email\.)不会将email.当作字符串处理掉?

请问,如何通过正则去除开头指定的字符串,而不是字符!

Aran.Wang的主页 Aran.Wang | 初学一级 | 园豆:76
提问于:2017-03-10 11:59
< >
分享
所有回答(3)
0

match与replace配合使用可否?

var str = 'email.aaa@sfsf.com';
var reg = /\email./;
var finStr = '';
if(str.match(reg)){
    finStr = str.replace(reg, '');
    console.log(finStr);
}
名字不好起啊 | 园豆:401 (菜鸟二级) | 2017-03-10 13:00

虽然可行,但不想这样做,想通过正则实现

支持(0) 反对(0) Aran.Wang | 园豆:76 (初学一级) | 2017-03-10 14:15

@Aran.Wang: 小菜 一楼的不就是用正则表达式处理的吗?你是想用C#进行出来吗?

支持(0) 反对(0) | 园豆:332 (菜鸟二级) | 2017-03-10 14:58

@Aran.Wang: 用C#的写法如下:

string strText = "email.aaa@sfsf.com";
Regex reg = new Regex("([\\s\\S]*.)aaa@sfsf.com");
if (reg.IsMatch(strText))
{
Match m = reg.Match(strText);
strText = strText.Replace(m.Groups[1].ToString(), "");
}
return strText;

支持(0) 反对(0) | 园豆:332 (菜鸟二级) | 2017-03-10 15:32

@瑾: 你这样处理  如果遇到   aaa.aaa@sfsf.com 就不行了

支持(0) 反对(0) Aran.Wang | 园豆:76 (初学一级) | 2017-03-10 16:11

@Aran.Wang: 如果你的.aaa@sfsf.com前一定是字母的话 可以修改为这个正则:([a-z]+.)aaa@sfsf.com

支持(0) 反对(0) | 园豆:332 (菜鸟二级) | 2017-03-10 18:35

@Aran.Wang: ([a-z]*.)aaa@sfsf.com 改成这个也实用你.前边为空的情况

支持(0) 反对(0) | 园豆:332 (菜鸟二级) | 2017-03-10 18:37

@瑾: aaa@sfsf.com 就没法匹配了,你这种写法太死了

支持(0) 反对(0) Aran.Wang | 园豆:76 (初学一级) | 2017-03-20 12:02
0

将email.用()括起来试试,.email.应该是一个整体啊,你的正则表达式中!只是修饰了e

徐浩进 | 园豆:214 (菜鸟二级) | 2017-03-11 12:40

括起来没用,还是只去掉了e

支持(0) 反对(0) Aran.Wang | 园豆:76 (初学一级) | 2017-03-20 11:33
0

(?:email\.)?(.+)

用$1去替换就好了

jello chen | 园豆:7336 (大侠五级) | 2017-03-13 00:24

除了用正则替换,就没有别的方法了吗? 

支持(0) 反对(0) Aran.Wang | 园豆:76 (初学一级) | 2017-03-20 12:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册