正則表達式妙用

正則表達式用處非常大司志,規(guī)則也是復(fù)雜難記,很容易讓人望而卻步降宅。

以下示例也只是用到了其中的兩個特性骂远。對于這種難記又難用,but 功能強大的工具腰根。個人一貫宗旨是:熟悉工具有哪些特性激才,能用來干什么,不會用去查额嘿,反正資源那么多

  • 正則表達式 - 分組
filterCondition = Regex.Replace(conditions, @"(?<chinese>[\u4e00-\u9fa5]+)", "\"${chinese}\"");

blog: C#正則表達式替換

用于工作中(很長瘸恼,慢慢拼湊出來的)

背景:由于工作內(nèi)容是替換整個底層框架,數(shù)據(jù)庫也由 SQLServer 改為 PostgreSQL岩睁,而前端存在大量的 WHERE 子句钞脂,不太可能逐個修改前端。由于中文以及 SQL 語法 的細小差異捕儒,造成后端服務(wù)無法解析冰啃,需要經(jīng)過一層轉(zhuǎn)換。

由于之前被正則表達式徹底征服過刘莹,查閱收藏了一些關(guān)于正則的高級用法阎毅,奈何記不住。

工作中遇到該問題時点弯,腦海中出現(xiàn)一絲疑問:能不能用正則來解決扇调?
于是就有了下面一串冗長的字符串,功能就是提取 where 子句字段名抢肛,并加上雙引號

  • 提取 操作符前的名字狼钮,并加上雙引號

如何驗證:https://regexr.com/

((\b|[\u4e00-\u9fa5])*(\w*|[\u4e00-\u9fa5])+(?=(\s*)(\>=|\>|=|\<\>|!=|\<|\<=|like|Like|LIKE|(\s+)is(\s+))(\s*)(\b|'|%|[\u4e00-\u9fa5]+)))
  • 測試用例(純粹測試)
啊a is auu管材 is null and cad圖層>= %100% and bcd   <= 300 or  acbb is not null ac<=hht or ccc換行 is null and acd中 is null CAD集 !=  '%新城碳柱、or a老城管 <> 愛%科技20181219v2.0 or a like 'bt'

cad <= '注記'   <= htth
  • C# 實現(xiàn)
// 匹配字段,加雙引號
filterCondition = Regex.Replace(conditions, @"(?<field>(\b|[\u4e00-\u9fa5])+(\w*|[\u4e00-\u9fa5])+(?=(\s*)(\>=|\>|=|\<\>|!=|\<|\<=|like|(\s+)is(\s+))(\s*)(\b|'|%|[\u4e00-\u9fa5]+)))", "\"${field}", RegexOptions.IgnoreCase);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末熬芜,一起剝皮案震驚了整個濱河市莲镣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涎拉,老刑警劉巖瑞侮,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鼓拧,居然都是意外死亡半火,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門季俩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钮糖,“玉大人,你說我怎么就攤上這事种玛∶旰祝” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵赂韵,是天一觀的道長娱节。 經(jīng)常有香客問我,道長祭示,這世上最難降的妖魔是什么肄满? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮质涛,結(jié)果婚禮上稠歉,老公的妹妹穿的比我還像新娘。我一直安慰自己汇陆,他們只是感情好怒炸,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毡代,像睡著了一般阅羹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上教寂,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天捏鱼,我揣著相機與錄音,去河邊找鬼酪耕。 笑死导梆,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播看尼,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼递鹉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了狡忙?” 一聲冷哼從身側(cè)響起梳虽,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎灾茁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谷炸,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡北专,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旬陡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拓颓。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖描孟,靈堂內(nèi)的尸體忽然破棺而出驶睦,到底是詐尸還是另有隱情,我是刑警寧澤匿醒,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布场航,位于F島的核電站,受9級特大地震影響廉羔,放射性物質(zhì)發(fā)生泄漏溉痢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一憋他、第九天 我趴在偏房一處隱蔽的房頂上張望孩饼。 院中可真熱鬧,春花似錦竹挡、人聲如沸镀娶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梯码。三九已至,卻和暖如春耸序,著一層夾襖步出監(jiān)牢的瞬間忍些,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工坎怪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留罢坝,地道東北人。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像嘁酿,于是被迫代替她去往敵國和親隙券。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應(yīng)的列上鍵入重復(fù)值時闹司,會觸發(fā)此異常娱仔。 O...
    我想起個好名字閱讀 5,256評論 0 9
  • 幾個正則表達式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:ht...
  • 為什么要做這件事 做事情總得有些理由才能持久的執(zhí)行下去,因為最近學(xué)習(xí)html5語言游桩,常規(guī)使用的很多信息需要表單來進...
    TsingQue閱讀 2,128評論 0 8
  • 這樣的失眠之後苫幢,往往會陷入奇怪的夢境中。 有時候瘾境,是一片櫻花爛漫的山林铐刘,風(fēng)吹過陪每,粉粉的小花瓣飄落,我不知是我镰吵,立在...
    圓果青青子閱讀 145評論 0 0
  • 金剛書院《智慧天天見》一萬小時定律實修作業(yè)分享 張蓮蓮2019年2月3日打卡踐行第440天 瑜伽早課共修:月累計2...
    zll蓮蓮閱讀 116評論 0 0