如何检查文本框中的字符串是否为普通字符串?
我正在逐行搜索文本文件.
无论是通过.Contains(Textbox.Text);还是通过Regex(Textbox.Text) Match(currentLine)
(我知道,语法不是这样的,它只是用于演示)
现在我的程序应该是自动检测,如果Textbox.Text是RegEx的形式,或者它是一个普通的字符串.
有什么建议?写我自己的小RexEx来检测Textbox是否包含RegEx?
编辑:
我没有添加thad我的字符串可以非常简单,就像Foo ore 0005我正在尝试建议的解决方案!
您无法使用正则表达式检测正则表达式,因为正则表达式本身不是常规语言.
但是,最简单的方法是尝试从文本框内容编译正则表达式,当它成功时,你知道它是一个正则表达式.如果它失败了,你知道它不是.
但是这会将普通字符串如"foo"分类为正则表达式.根据您的需要,这可能是也可能不是问题.如果它是搜索字符串,那么结果对于这种情况是相同的.在"foo.bar"的情况下,它们会有所不同,但因为它是一个有效的正则表达式但匹配不同于字符串本身的东西.
我的建议,也在另一个评论中说明,你只是总是启用正则表达式搜索,因为如果你在这里拆分代码路径没有什么区别.除了可疑的绩效福利(如果有很多好处,这不太可能产生任何影响).