我想使用正则表达式选择以某些字母开头

时间:2018-10-27 10:52:19

标签: c# .net regex

我有c#项目, 我有以下字符串,只想选择以某些字母开头的字符串 像“ A”和“ D”

SelectSeat('SID9', '1', '', 'Abc good', '265', '001')">

SelectSeat('SID0', '2', '1층', 'Dhello', '41', '003')">

SelectSeat('SID0', '2', '1층', 'Cold', '41', '003')">

所以我要匹配的结果是

SelectSeat('SID9', '1', '', 'Abc good', '265', '001')">

SelectSeat('SID0', '2', '1층', 'Dhello', '41', '003')">

因为这是一个“冷”字,以“ C”开头

SelectSeat('SID0', '2', '1층', 'Cold', '41', '003')">

这是我到现在为止所做的事情,并且在寻求帮助方面有些挣扎。

SelectSeat\('SID[0-9]*',.'([\w]*)',.'([\w\s]*)',.'([\w\s]*)'.*?\)

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您要开始使用像'A''D'这样的特定字母

您可以尝试这种模式。

SelectSeat\('SID[0-9]',.'[0-9]',.'(.)*',\s*'([AD])(.*)',.'([\w\s]*)'.*?\)

使用linqRegex.IsMatch函数来获取期望字符串。

代码

List<string> inputs = new List<string>() {
    @"SelectSeat('SID9', '1', '', 'Abc good', '265', '001')"">",
    @"SelectSeat('SID0', '2', '1층', 'Dhello', '41', '003')"">",
    @"SelectSeat('SID0', '2', '1층', 'Cold', '41', '003')"">"
};
string pattern = @"SelectSeat\('SID[0-9]',.'[0-9]',.'(.)*',\s*'([AD])(.*)',.'([\w\s]*)'.*?\)";
var result = inputs.Where(x => Regex.IsMatch(x, pattern));

foreach (var item in result)
{
     Console.WriteLine(item);
}

c# online

答案 1 :(得分:0)

/^[A]|^[a]|^[D]|^[d]/

将匹配以A或D开头的任何单词。