正则表达式检查单词是否由某些单词继承

时间:2013-12-20 17:13:33

标签: c# regex ms-word whitespace

我正在使用原生C ++编写一种编程语言,我正在用C#编写基本编辑器。 NET WinForms。但是,我正在使用SyntaxRTB,我希望Regex能够捕获以下错误:

  

如果声明未被string / int / float / bool / array / char

取代

我该怎么做?

(声明变量的语法是declare variable_type variable_name) - 也必须考虑空格。

我有declare(?!string),但我仍感到困惑。

3 个答案:

答案 0 :(得分:3)

如果你想要一个正则表达式,你需要一个零宽度negative lookahead

但是如果你正在构建一种语言,那就不是这样了。完整的语言解析器是一个不同的实体。

答案 1 :(得分:1)

虽然我同意@fejesjoco,但这是我用here的表达式:
(declare)[\s](int|string|float|bool|array|char)[\s](.*)

image showing declare groups

检查!match(pattern)以进一步诊断问题。

答案 2 :(得分:0)

您将要使用Lookahead断言。说实话,我在Regex中很不错,但我不是那个你想要解释给你的人。

This link会比我更好地解释它,this link提供了一个相当不错的正则表达式编辑器。