C# 我可以打开/关闭正则表达式处理吗?
我正在实现一个搜索功能(在树视图中),用户可以选择打开/关闭正则表达式,以及打开/关闭匹配大小写和整个文本 NET正则表达式有什么方法可以告诉它不要处理正则表达式字符吗?如果是这样的话,那么我可以一直使用正则表达式寻找匹配项,即使在禁用正则表达式的情况下也是如此 我想到一件事。对于这种情况,请转义搜索字符串中的所有特殊字符。这是个坏主意,还是行得通C# 我可以打开/关闭正则表达式处理吗?,c#,.net,regex,C#,.net,Regex,我正在实现一个搜索功能(在树视图中),用户可以选择打开/关闭正则表达式,以及打开/关闭匹配大小写和整个文本 NET正则表达式有什么方法可以告诉它不要处理正则表达式字符吗?如果是这样的话,那么我可以一直使用正则表达式寻找匹配项,即使在禁用正则表达式的情况下也是如此 我想到一件事。对于这种情况,请转义搜索字符串中的所有特殊字符。这是个坏主意,还是行得通 谢谢-dave根据您的问题猜测,您的UI如下所示: [Lorem ipsum... Search: _______________
谢谢-dave根据您的问题猜测,您的UI如下所示:
[Lorem ipsum... Search: _______________
ipsum... [ ] case-insensitive
lorem ... ] [ ] regular expression
因此,您有四种情况:大小写/敏感&模式/短语。
要搜索简单短语,请在搜索字符串上使用:
+---------+-----------------------------------------------------+------------------------------------------------------------------------------+
| | case-sensitive | case-insensitive |
+---------+-----------------------------------------------------+------------------------------------------------------------------------------+
| pattern | Regex.Matches(input, "searchPattern") | Regex.Matches(input, "searchPattern", RegexOptions.IgnoreCase) |
| phrase | Regex.Matches(input, Regex.Escape("searchPattern")) | Regex.Matches(input, Regex.Escape("searchPattern"), RegexOptions.IgnoreCase) |
+---------+-----------------------------------------------------+------------------------------------------------------------------------------+
其余部分应该是直截了当的。根据您的问题猜测,您的UI如下所示:
[Lorem ipsum... Search: _______________
ipsum... [ ] case-insensitive
lorem ... ] [ ] regular expression
因此,您有四种情况:大小写/敏感&模式/短语。
要搜索简单短语,请在搜索字符串上使用:
+---------+-----------------------------------------------------+------------------------------------------------------------------------------+
| | case-sensitive | case-insensitive |
+---------+-----------------------------------------------------+------------------------------------------------------------------------------+
| pattern | Regex.Matches(input, "searchPattern") | Regex.Matches(input, "searchPattern", RegexOptions.IgnoreCase) |
| phrase | Regex.Matches(input, Regex.Escape("searchPattern")) | Regex.Matches(input, Regex.Escape("searchPattern"), RegexOptions.IgnoreCase) |
+---------+-----------------------------------------------------+------------------------------------------------------------------------------+
剩下的应该是直截了当的。您可以使用Regex。Escape@DaveM-谢谢。如果你把它作为一个答案,我很乐意选择它并投票。你可以使用正则表达式。Escape@DaveM-谢谢。如果你把它作为一个答案,我很乐意选择它并投票。很抱歉使用ASCII表格。我当时的心情很有创意顺便说一句,我喜欢ASCII表格:)抱歉使用ASCII表格。我当时的心情很有创意顺便说一句,我喜欢ASCII表格:)