亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正則表達式以跳過捕獲組中的字符

正則表達式以跳過捕獲組中的字符

暮色呼如 2019-11-02 14:22:39
是否可以跳過捕獲組中正則表達式中的幾個字符?我正在使用.NET正則表達式,但這無關緊要?;旧?,我正在尋找的是:[隨機文本] AB-123 [隨機文本]并且我需要不帶連字符的情況下捕獲“ AB123”。我知道AB是2或3個大寫字符,而123是2或3個數字,但這不是很難的部分。困難的部分(至少對我而言)是跳過連字符。我想我可以分別捕獲它們,然后在代碼中將它們連接起來,但是我希望我有一個更優雅的,僅用于正則表達式的解決方案。有什么建議么?
查看完整描述

3 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

簡而言之:你不能。匹配始終是連續的,即使它包含零寬度的斷言,如果要轉到下一個字符,也就無法匹配下一個字符。


查看完整回答
反對 回復 2019-11-02
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

您的斷言,如果沒有分組再加上它,就不可能做到這一點是正確的。


您也可以像Jeff-Hillman一樣,只在事發之后剔除壞角色。


這里要注意的重要一點是,您“不要對所有內容都使用正則表達式”。


正則表達式是為不太復雜的問題而設計的,用于不太復雜的解決方案,您不應該對所有內容都使用“哦,我們將使用正則表達式”,并且您不應習慣于認為自己可以通過簡單的方法解決問題。一步式正則表達式。


當存在可行的可行方法時,請務必使用它。


如果您恰巧需要在代碼體中返回多個匹配項,則可以使用另一種想法,即尋找基于語言“回調”的正則表達式,該表達式允許將任何匹配/找到的組傳遞給可以進行內聯替換的函數調用。(在執行regexp時特別方便)。


不知道它如何在.Net中工作,但是在php中您會做類似的事情(不是精確的代碼)


  function strip_reverse( $a )

  {

     $a = preg_replace("/-/", "", $a );

     return reverse($a);

  }

  $b = preg_replace_callback( "/(AB[-]?cde)/" , 'strip_reverse' , "Hello World AB-cde" ; 


查看完整回答
反對 回復 2019-11-02
  • 3 回答
  • 0 關注
  • 1111 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號