給定一行代碼,我需要根據特定標準確定它是否有效。根據一定的標準確定一行代碼是否有效
如果該行包含任何特殊關鍵字。關鍵字以美元符號開頭。例如,
$SREAD
是這裏的關鍵詞tempval = $SREAD(13,"B14.OATEMP");
我需要得到一個數字組成的關鍵字的方法中的參數。然後將參數計數與應用程序內的常量值進行比較。
在這裏確定有效性的最簡單方法是什麼?
給定一行代碼,我需要根據特定標準確定它是否有效。根據一定的標準確定一行代碼是否有效
如果該行包含任何特殊關鍵字。關鍵字以美元符號開頭。例如,$SREAD
是這裏的關鍵詞
tempval = $SREAD(13,"B14.OATEMP");
我需要得到一個數字組成的關鍵字的方法中的參數。然後將參數計數與應用程序內的常量值進行比較。
在這裏確定有效性的最簡單方法是什麼?
試試這個正則表達式:
\$keyword\(([^,\)]+,?)+\)
修訂:和你的代碼:
var inputString = "tempval = $keyword(13,\"B14.OATEMP\");";
inputString = Regex.Replace(inputString, "\".*?\"", "\"\"");
var count = 0;
if (Regex.IsMatch(inputString, @"\$keyword\(([^,\)]+,?)+\)"))
count = Regex.Matches(inputString, @"\$keyword\(([^,\)]+,?)+\)")[0]
.Groups[1].Captures.Count;
您必須實現一個解析器,即使是小的例子使用的分配,一個「函數調用」和字符串和整數參數。如果您將用來執行該表達式的解釋器支持運行時編譯,則可以使用它來驗證它。你不能用普通的正則表達式進行真正的驗證。 –