如何检查字符串是"字符串"还是RegEx?

mar*_*hne 2 .net c# regex

如何检查文本框中的字符串是否为普通字符串?

我正在逐行搜索文本文件.

无论是通过.Contains(Textbox.Text);还是通过Regex(Textbox.Text) Match(currentLine)

(我知道,语法不是这样的,它只是用于演示)

现在我的程序应该是自动检测,如果Textbox.Text是RegEx的形式,或者它是一个普通的字符串.

有什么建议?写我自己的小RexEx来检测Textbox是否包含RegEx?

编辑:

我没有添加thad我的字符串可以非常简单,就像Foo ore 0005我正在尝试建议的解决方案!

Joe*_*oey 5

您无法使用正则表达式检测正则表达式,因为正则表达式本身不是常规语言.

但是,最简单的方法是尝试从文本框内容编译正则表达式,当它成功时,你知道它是一个正则表达式.如果它失败了,你知道它不是.

但是这会将普通字符串如"foo"分类为正则表达式.根据您的需要,这可能是也可能不是问题.如果它是搜索字符串,那么结果对于这种情况是相同的.在"foo.bar"的情况下,它们会有所不同,但因为它是一个有效的正则表达式但匹配不同于字符串本身的东西.

我的建议,也在另一个评论中说明,你只是总是启用正则表达式搜索,因为如果你在这里拆分代码路径没有什么区别.除了可疑的绩效福利(如果有很多好处,这不太可能产生任何影响).