C# 最好的正则表达式
全部,我有以下字符串列表C# 最好的正则表达式,c#,regex,C#,Regex,全部,我有以下字符串列表 List<string> list = new List<string>() { "Japanese (Japan) (ja-jp)", "Scottish Gaelic (United Kingdom) (gd-gb)", "German (Germany) (de-DE)", "Amharic (Ethiopia) (am-et)" }; 我目前正在使用组和Regex Regex regex = ne
List<string> list = new List<string>()
{
"Japanese (Japan) (ja-jp)",
"Scottish Gaelic (United Kingdom) (gd-gb)",
"German (Germany) (de-DE)",
"Amharic (Ethiopia) (am-et)"
};
我目前正在使用组和Regex
Regex regex = new Regex(@"(.*)\s*(\(.*\))\s*(\(.*\))");
是否有人能提供更好的
Regex
?如果您的代码始终采用这种格式,您可以使用子字符串提取而不是Regex:
var codes = list.Select(l => l.Substring(l.Length - 6, 5)).ToList();
那么:
@"^.*\(([\w\-]+)\)$"
它较短,仅捕获相关文本。
@”(?尝试此操作以获得整个模式:
Regex regex = new Regex(@"^.*\((.+)\)$");
foreach (string item in list)
{
string result = regex.Match(item).Groups[1].Value;
}
Regex regex = new Regex(@"(?>[^()]+)(?=\)$)");
或者简单地说:
Regex regex = new Regex(@"[^()]+(?=\)$)");
bet·ter/ˈbetər/更优秀或更有效类型或性质的形容词:“希望天气更好”;“我代数比爱丽丝好”。更出色或更有效的副词:“约翰尼如果试一试就会做得更好”;“现在的乐器一般都做得更好”。用更好的名词;哪个更好:《自然历史博物馆》这本书是两本书中最好的一本,“朝着更好的方向发展”。哈哈。更快?更健壮?更灵活?@Killercam:我不得不努力避免仅仅因为它的snark价值而对那篇评论投反对票。不,没有太多的括号。不过它与破折号(-
)不匹配。现在是这样了。
var result = list.Select(s => Regex.Match(s, @"\((\w+\-\w+)\)").Groups[1].Value)
.ToList();
Regex regex = new Regex(@"(?>[^()]+)(?=\)$)");
Regex regex = new Regex(@"[^()]+(?=\)$)");