2016-12-08 16 views
1

У меня есть регулярное выражение vb.net, которое я использую для идентификации операторов в простой сумме z + x. Как определить ключевые слова в данном выражении с использованием лексического анализа?vb.net идентифицировать ключевое слово в простом лексическом анализаторе

Мой текущий код:

Dim input As String = txtInput.Text 
Dim symbol As String = "([-+*/])" 
Dim substrings() As String = Regex.Split(input, symbol) 

For Each match As String In substrings 
    lstOutput.Items.Add(match) '<-- Do I need to add a string here to identify the regular expression? 
Next 

input: z + x 

Это то, что я хочу, чтобы это произошло в выходной

z - keyword 
+ - operator 
x - keyword 

ответ

2

Рассмотрим следующее обновление кода (как проект консоли):

  • operators содержит строку, вы можете включить в ваш Regex шаблон, а также сослаться на позднее
  • в петле, проверьте operators содержит match означает, что матч является оператором
  • что-нибудь еще ключевое слово

Так вот код:

Dim input As String = "z+x" 
Dim operators As String = "-+*/" 
Dim pattern As String = "([" & operators & "])" 
Dim substrings() As String = Regex.Split(input, pattern) 
For Each match As String In substrings 
    If operators.Contains(match) Then 
     Console.WriteLine(match & " - operator") 
    Else 
     Console.WriteLine(match & " - keyword") 
    End if 
Next 
+0

Благодаря малиновка я также сделал еще, если заявление для ввода чисел .. –