使用正規表示式實現表示式計算器

2021-08-27 01:42:14 字數 1275 閱讀 2699

使用正規表示式實現簡易表示式計算器

由於我是做工程的,在實際使用中經常要對複雜公式進行計算,覺得使用windows計算器非常不方便,也容易出錯,而matlab用於小型的計算太浪費(主要是啟動比較慢,而且不是所有地方都有),因此決定自己寫乙個表示式計算器進行使用。在寫計算器的過程中,研究了.net的正規表示式系統,略有心得。將其寫出來與大家分享。

在工程應用中,用到最多的就是整數的位運算,與或非異或移位等操作非常頻繁,且經常會有連續操作。特別是在通訊控制中,經常使用的校驗(採用累加或異或的方式),要計算也較多,因此首先考慮了整數的表示式計算,後續考慮了雙精度資料的計算。

1. .net framework正規表示式概述(本節內容來自microsoft msdn )

正規表示式提供了功能強大、靈活而又高效的方法來處理文字。正規表示式的全面模式匹配表示法使您可以快速分析大量文字以找到特定的字元模式;驗證文字以確保它匹配預定義的模式(如電子郵件位址);提取、編輯、替換或刪除文字子字串;將提取的字串新增到集合以生成報告。對於處理字串或分析大文字塊的許多應用程式而言,正規表示式是不可缺少的工具。

正規表示式的工作方式

使用正規表示式處理文字的中心構件是正規表示式引擎,該引擎在 .net framework 中由system.text.regularexpressions. regex 物件表示。使用正規表示式處理文字至少要求向該正規表示式引擎提供以下兩方面的資訊: 在 .net framework 中,正規表示式模式用特殊的語法或語言定義,該語法或語言與 perl 5 正規表示式相容,並新增了一些其他功能,例如從右到左匹配。有關更多資訊,請參見正規表示式語言元素。 regex類的方法使您可以執行以下操作: 通過呼叫ismatch方法確定輸入文字中是否具有正規表示式模式匹配項。有關使用ismatch方法驗證文字的示例,請參見如何:驗證字串是否為有效的電子郵件格式。

通過呼叫match或matches方法檢索匹配正規表示式模式的乙個或所有文字匹配項。第乙個方法返回提供有關匹配文字的資訊的match物件。第二個方法返回matchcollection物件,該物件對於在分析的文字中找到的每個匹配項包含乙個match物件。

通過呼叫replace方法替換匹配正規表示式模式的文字。有關使用replace方法更改日期格式和移除字串中的無效字元的示例,請參見如何:從字串中剝離無效字元和示例:更改日期格式。

***詳細的.net正規表示式使用請參見microsoft msdn

2. 整數表示式運算的實現

2.1需求分析

首先要確定整數表示式運算需要實現哪一些功能。根據實際情況,當前確定整數表示式運算至少應該支援如下功能:

正規表示式實現計算器

author 來童星 date 2019 11 10 import re source 1 2 60 30 40 5 9 2 5 3 7 3 99 4 2998 10 568 14 4 3 16 3 2 做檢查 def check s flag true if re.findall a za z s...

計算器 (正規表示式

寫個計算器,輸入完全符合要求的 數字組成的表示式,計算相應結果。思路分先後順序遞迴拆解式子。先對 符合進行遞迴,直到全是 表示式,再對 表示式進行遞迴直到只有數字。最後返回計算。include using namespace std define maxn 100005 define maxm 10...

練習 正規表示式計算器

coding utf 8 import re 正規表示式計算器 檢測錯誤 1 括號匹配 2 運算子檢查 3 非法字元 查詢括號,乘除,加減。運算 主函式替換 ret re.findall s 審核小括號 def check k s tag 0 for x in s if x tag 1 elif x...