我一直为此苦恼,但我认为我已经接近成功了,但似乎还差一点。
我一直在尝试使用正则表达式从字符串中提取特定的子字符串。这个子字符串必须与一定的字符串/数字匹配。然后,在此之后,它应该被返回到另一个函数,该函数仅提取数字。
这里有一些存在的字符串示例:
"(DEV #198) I am a dev testing 23 different things."
"(dev #9540) I am a dev testing different other things."
"(FQ #1140) I am a dev testing different things."
"(fq #910) I am a dev testing different other things."
最终变量根据输入应为198、9540、1140或910。以下是迄今为止的正则表达式。我认为它很接近,但还需要一些帮助。(请注意C#中双反斜杠)
^(?=.*?\\b(dev|DEV|fq|FQ)\\b)(?=.*?\\b[0-9]{3,4}\\b).*$
这是我目前正在使用的代码片段。
string caseNumber = cpTicket.Desc;
string regexPattern = "^(?=.*?\\b(dev|DEV|fq|FQ)\\b)(?=.*?\\b[0-9]{3,4}\\b).*$";
caseNumber = Regex.Match(caseNumber, regexPattern).ToString();
这是我在这方面能做的事情。如果您能帮忙,我将非常感激:D
(?i:dev|fq)
,而不是使用(?i)
。 - Pierluc SS