我有一个带有列表框的表单,在此列表框中我有来自 .xml 文件的数据。
当我选择一个输入时,我会在 var 字符串中获取该输入的值:
string s = lstCust.SelectedItem.ToString();
它给了我:“John Doe,[email protected]电话:00336598745”
现在我只想获取邮件地址,因此我正在尝试使用此正则表达式:
@"([A-Za-z0-9._ % -] +@[A-Za-z0-9.-] +\.[a-zA-Z]{2,4})*"
使用此方法:
string mail = Regex.Match(s, @"([A-Za-z0-9._ % -] +@[A-Za-z0-9.-] +\.[a-zA-Z]{2,4})*").Value;
我确信我的正则表达式可以工作,因为
Regex.Match(s, @"([A-Za-z0-9._ % -] +@[A-Za-z0-9.-] +\.[a-zA-Z]{2,4})*").Success.ToString();
给了我一个true
。
但是我的 var mail 的值始终等于“”(空)。
知道我做错了什么吗?
谢谢
最佳答案
您的正则表达式模式中存在空格,导致其无法匹配。删除末尾的空格和*
string mail = Regex.Match(s, @"([A-Za-z0-9._ % -]+@[A-Za-z0-9.-]+\.[a-zA-Z]{2,4})").Value;
关于c# - 无法获取字符串中正则表达式匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56079312/