首先,对于可能发生的任何拼写/语法错误,我们深表歉意。我正在尝试解决一些复杂的正则表达式问题,但我似乎无法弄清楚如何解决。我正在尝试过滤掉某些字符串的某些部分。但是,这有效!有一行是可选的,第二行是电子邮件。我如何告诉正则表达式这部分是可选的,并且应该只搜索它是否存在于字符串中。
字符串
- [评论]喵[/127.0.0.1]
- [评论]阴影[/127.0.0.1]
- [评论] [电子邮件] Foxy[/127.0.0.1]
- [评论] [email2] PerfectAim[/127.0.0.1]
我试过的
Regex regexUserCommented = new Regex(
@"(\[COMMENT\])\ " + // COMMENT
@"(\[.*\]) " + // Email, this needs to be optional but how?!
@"(\w(?<!\d)[\w'-]*)" // User
);
if (regexUserCommented.IsMatch(test))
{
var infoMatches = regexUserCommented.Split(test);
Console.WriteLine(infoMatches[3]); // User
}
任何人都知道如何将电子邮件部分设为可选?(在正则表达式中是可选的,所以如果它不在字符串中,它不会做任何事情,它只是跳过电子邮件部分,对不起我的英语不好>:)。