我需要在字符串中搜索模式。 例如:
string big = "Hello there, I need information for ticket XYZ12345. I also submitted ticket ZYX54321. Please update.";
现在我需要根据模式XXX00000
提取/查找/搜索单词,即3 ALPHA和5数字。
有没有办法做到这一点?
即使提取也适合我。
请帮忙。
答案 0 :(得分:3)
foreach (Match m in Regex.Matches(big, "([A-Za-z]{3}[0-9]{5})"))
{
if (m.Success)
{
m.Groups[1].Value // -- here is your match
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用简单的正则表达式来匹配以下字符串
([A-Za-z]{3}[0-9]{5})
完整的代码将是:
string strRegex = @"([A-Za-z]{3}[0-9]{5})";
Regex myRegex = new Regex(strRegex, RegexOptions.IgnoreCase);
string strTargetString = @"Hello there, I need information for ticket XYZ12345. I also submitted ticket ZYX54321. Please update.";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
if (myMatch.Success)
{
// Add your code here
}
}
答案 3 :(得分:0)
您可以随时为请求使用聊天扩展程序。
从没有任何上下文的句子中提取所需信息 你可以使用正则表达式。
您可以使用http://rubular.com/进行测试, 一个例子是
...[0-9]
会找到XXX00000
希望有所帮助。
答案 4 :(得分:0)
使用正则表达式:
string ticketNumber = string.Empty;
var match = Regex.Match(myString,@"[A-Za-z]{3}\d{5}");
if(match.Success)
{
ticketNumber = match.Value;
}
答案 5 :(得分:0)
这是一个正则表达式:
var str = "ABCD12345 ABC123456 ABC12345 XYZ98765";
foreach (Match m in Regex.Matches(str, @"(?<![A-Z])[A-Z]{3}[0-9]{5}(?![0-9])"))
Console.WriteLine(m.Value);
额外的位是零宽度负面后视((?<![A-Z])
)和前瞻((?![0-9])
)表达式,以确保您不会捕获额外的数字或字母。以上示例仅捕获第三和第四部分,但不捕获第一部分和第二部分。一个简单的[A-Z]{3}[0-9]{5}
捕获至少指定数量的字符或更多。