中文字幕精品无码亚洲字精舞,爱丫爱丫影院在线观看免费,a片毛片免费看,337P日本欧洲亚洲大胆人人

EPLAN中正則表達式的一則應(yīng)用案例

2022/8/23 10:46:58 人評論 次瀏覽 分類:DCS  文章地址:http://m.wxmqjy.com/tech/4408.html

正則表達式(Regular Expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。正則表達式在編程界、增強文本編輯器界家喻戶曉,人盡皆知;在辦公界、工程設(shè)計界則聞?wù)吡攘取V卟换螅芤骖H多;不知者無過,沒啥損失。

EPLAN作為ECAD領(lǐng)域里的“閬苑仙葩”(注:出自于《紅樓夢》的經(jīng)典詞曲《枉凝眉》,指仙界的花草),支持正則表達式不足為奇。不過大多數(shù)情況下,客戶都用不到它,所以多數(shù)人并不知悉它的存在,這么多年來,筆者也就用過不到20回,屬于壓箱底落灰的狀態(tài)。


昨天有個客戶問了一個問題:在結(jié)構(gòu)標識總覽報表中,想要有一列用于顯示結(jié)構(gòu)標識符的前綴(也就是前綴和標識符拆分為兩列顯示),參考下方的“前序符號”列和“代號”列。EPLAN的可選屬性雖然多,但找不到所需要的屬性。客戶為此感到困擾。

結(jié)構(gòu)標識總覽報表

身美女常說“這么多男生,沒有一個是我愛的”,此時的客戶心里說“這么多屬性,沒有一個是我要的”。

屬性列表

找不到想要的屬性該怎么辦呢?昌暉儀表給想了兩個辦法:簡單的辦法、高效的辦法。簡單的意思是動腦少一些;高效的意思是動手少一些。按照《高效能人士的七個習慣》中的觀點,“個人永遠有選擇的自由”、“個人應(yīng)為自己的選擇負責(不怨天不尤人)”。因此,哪種方法適合你,取決于你自己的選擇。


方法一:使用一個新的屬性

既然找不到現(xiàn)成的可用屬性,那我就使用一個另外的屬性,比如Structure Description 2<1007>(結(jié)構(gòu)描述2),將其插入到報表表格中。

通過主菜單“項目數(shù)據(jù)→結(jié)構(gòu)標識符管理”,打開對話框。點擊鼠標右鍵,如標記① ;選擇“配置顯示”,如標記② ,將屬性Structure Description 2<1007>(結(jié)構(gòu)描述2)添加到對話框中。


對于高層代號,這一列的值應(yīng)該填寫等號(=);對于位置代號,這一列的值應(yīng)該填寫(+);對于文檔類型,這一列應(yīng)該填寫(&)……填寫完成后,更新報表,想要的結(jié)果就出來了。

對話框

這種方法非常簡單,但是有個缺點。比如從別的項目復(fù)制了圖紙過來,或手工新增了新的結(jié)構(gòu)標識符,要始終記得修改這里的Structure Description 2<1007>(結(jié)構(gòu)描述2),否則報表會有些地方是空缺的。


方法二:使用正則表達式

正則表達式的思路比較簡單,找到一個屬性,比如Structure identifier <20000> / Complete structure identifier with preceding sign <1003>(結(jié)構(gòu)標識符/帶前綴的完整結(jié)構(gòu)標識符),把不需要的部分去除,只保留前綴即可。

結(jié)構(gòu)標識符/帶前綴的完整結(jié)構(gòu)標識符

打開表格,插入占位符文本,彈出對話框中選擇① 格式屬性/計算屬性,然后選擇所需要的屬性③ Structure identifier <20000> / Complete structure identifier with preceding sign <1003>(結(jié)構(gòu)標識符/帶前綴的完整結(jié)構(gòu)標識符),別忘記激活④ 替代文本,我使用的是“表格10”。

彈出對話框

在項目屬性中,找到“塊屬性:替代文本[10]”,把值
○│??_??@+=&#+$;│ 粘貼進去,更新報表即可得到想要的結(jié)果。



相較于編程語言或增強文本編輯器,EPLAN的正則表達式有點半吊子。那么多好的正則引擎,偏偏它使用了一個很不咋地的ECMAScript。這個引擎支持的語法太少了,不夠強大。比如環(huán)視(LookAround)是很重要的語法,但EPLAN只支持肯定前視(Positive Lookahead)和否點前視(Negative Lookahead),不支持回顧。


本來按筆者最初想法,可以使用肯定回顧(Positive Lookback)語法(?<=[+=&#]).+$輕松解決,但是不成功,確認半天是語法不支持。這個語法的意思是把[+=&#]后面的內(nèi)容去掉。最后不得不使用了一個排除表達式[^+=&#]+$,這個表達式有缺陷,如果遇到+A1+LOC1這種多層結(jié)構(gòu)時會有問題,需要重新設(shè)計語法,好在這個客戶暫時沒有多層結(jié)構(gòu)。


期望EPLAN增強正則表達式功能,十年來筆者一直不曾放棄,它可以使得EPLAN更靈活和強大。成功,源自于不放棄!

共有訪客發(fā)表了評論 網(wǎng)友評論

  客戶姓名:
郵箱或QQ:
驗證碼: 看不清楚?
主站蜘蛛池模板: 东乡县| 鄂州市| 扶绥县| 奇台县| 海淀区| 九江县| 余干县| 兰州市| 静宁县| 正镶白旗| 隆子县| 射洪县| 常德市| 石渠县| 兴仁县| 泰安市| 安义县| 开鲁县| 迁西县| 水城县| 定边县| 伊通| 工布江达县| 遂宁市| 铁力市| 昌黎县| 谷城县| 健康| 诸暨市| 科技| 中山市| 富锦市| 巴中市| 怀远县| 甘德县| 内黄县| 行唐县| 兴宁市| 天镇县| 高要市| 石林|