我有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]*)'.*?\)
谢谢!
答案 0 :(得分:2)
如果您要开始使用像'A'
和'D'
这样的特定字母
您可以尝试这种模式。
SelectSeat\('SID[0-9]',.'[0-9]',.'(.)*',\s*'([AD])(.*)',.'([\w\s]*)'.*?\)
使用linq
和Regex.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);
}
答案 1 :(得分:0)
/^[A]|^[a]|^[D]|^[d]/
将匹配以A或D开头的任何单词。