繁体   English   中英

如何在C#正则表达式中使用“或”,“和”?

[英]How can I use “or”, “and” in C# Regex?

我有一个与字符串匹配的模式:字符串模式= @“ asc”我正在检查SQL SELECT查询的正确语法,语义,...我需要说的是,在查询字符串的末尾我可以有“ asc” ”或“ desc”。 如何用C#编写?

看起来像

new Regex("asc$|desc$").IsMatch(yourQuery)

假设您要强制asc / desc是查询的结尾。 你也可以做(?:asc|desc)$这是一个小吸尘器单$ ,但不可读性。

您需要“ alternation”运算符,即管道。

例如,我相信这可以表示为:

asc|desc

如果要使其成为非捕获组,则可以按常规方式进行。 我不是正则表达式专家,但这是第一件事。

编辑:MSDN有一个关于正则表达式语言元素的页面,可能会对您有所帮助。

只是为了增加其他答案,您可能还想对正则表达式应用忽略大小写选项。

string tempString = "SELECT * FROM MyTable ORDER BY column DESC";

Regex r = new Regex("asc$|desc$", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);

bool answer = r.IsMatch(tempString);

我认为,.Net中的正则表达式如下所示:

asc|desc\z

..它将匹配行尾和字符串尾。 如果只想字符串结尾,请尝试:

asc|desc$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM