[英]Regex, match only if it exists in the current string
首先,對於可能發生的任何拼寫/語法錯誤,我們深表歉意。 我正試圖解決一些復雜的正則表達式問題,但我似乎不知道如何解決。 我正在嘗試過濾掉某些字符串的某些部分。 但是,這有效! 有一行是可選的,第二行是電子郵件。 我如何才能告訴正則表達式這部分是可選的,並且僅應搜索它是否存在於字符串中。
弦樂
我嘗試過的
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
}
任何人都知道如何將電子郵件部分設為可選? (在正則表達式中是可選的,因此,如果它不在字符串中,則不執行任何操作,只是跳過電子郵件部分,對不起我的英語>:抱歉)。
正在使用群組...
Regex regexUserCommented = new Regex(
@"(\[COMMENT\])\ " + // COMMENT
@"((\[.*\]) )?" + // Email, this needs to be optional but how?!
@"(\w(?<!\d)[\w'-]*)" // User
);
var match = regexUserCommented.Match(test);
if (match.Groups.Count == 5)
{
Console.WriteLine("==> {0}", match.Groups[4].Value);
}
else
{
Console.WriteLine("==> Not matched");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.