如何检查一个字符串是否包含以下字符:“-A”后跟数字?
例如:thisIsaString-A21 = 是,包含“-A”后跟数字
例如:thisIsaNotherString-AB21 = 否,不包含“-A”后跟数字
\d
只匹配单个数字外,而给出的示例是-A21
,因此假定问题提出者需要匹配两个数字。 - Andras Zoltanif(Regex.IsMatch("thisIsaString-A21", "-A\\d+"))
{
//code to execute
}
如果你确实想要提取-A[num]位,可以这样做:
var m = Regex.Match("thisIsaString-A21", "-A\\d+"));
if(m.Success)
{
Console.WriteLine(m.Groups[0].Value);
//prints '-A21'
}
还有其他事情可以做 - 比如,如果您需要单独提取A [num]位或只提取数字:
var m = Regex.Match("thisIsaString-A21", "(?<=-A)\\d+");
//now m.Groups[0].Value contains just '21'
或者按照我的第一个建议,如果您想要 'A21':
var m = Regex.Match("thisIsaString-A21", "(?<=-)A\\d+");
//now m.Groups[0].Value contains 'A21'
还有其他方法可以实现这两个功能 - 我喜欢非捕获组(?<=)
,因为它可以保持输出组的清洁,正如其名称所示。
thisIsaString-A21B something else
怎么样?可以吗? - Ωmega