4

如何检查字符串是否包含以下字符“-A”后跟数字?

例如:thisIsaString-A21 = yes,包含“-A”后跟一个数字

例如:thisIsaNotherString-AB21 = 否,不包含“-A”后跟数字

4

2 回答 2

15

可以用正则表达式来完成:

if (Regex.IsMatch(s, @"-A\d")) { ... }

\d匹配任何数字。

在线查看它:ideone

于 2012-06-25T22:02:19.237 回答
4
if(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'

还有其他方法可以实现最后两个 - 我喜欢非捕获组(?<=),因为顾名思义,它保持输出组干净。

于 2012-06-25T22:04:54.980 回答