簡體   English   中英

用於從父字符串中識別和提取兩個不同字符串的正則表達式

[英]regular expression to identify and extract two different strings from parent string

我有以下字符串: your lead count is @_sfdc.Account.phonenumber.value, you are having @_hrms.leaves.leavescount per year

從這個,我想獲取@_sfdc.Account.phonenumber.value@_hrms.leaves.leavescount 在這種情況下,即使我們有多個點,它也應該獲取所有點分隔的字符串。

目前,我已經嘗試使用此正則表達式:/ /@_sfdc.([a-zA-Z]).+/g; / /@_sfdc.([a-zA-Z]).+/g;

/@_[\\w\\.]+/g

這與“ @_”匹配,后跟字母,數字或點( . )的任何序列。

您在正確的道路上,幾乎在那兒! 這里的主要錯誤是. 是正則表達式中的保留字符,表示“任何字符”。 要實際匹配點字符,您需要使用反斜杠將其轉義: \\.

因此,您的正則表達式變為/@_sfdc\\.([a-zA-Z])\\.+/g

需要注意的另一件事是,您要匹配同一組中的字母和點,而當前表達式則要求匹配以點結尾。 因此,讓我們在匹配的組方括號內移動該點:/ /@_sfdc\\.([a-zA-Z\\.])+/g .([ /@_sfdc\\.([a-zA-Z\\.])+/g .])+/ /@_sfdc\\.([a-zA-Z\\.])+/g

另外,您說您想同時匹配@_sfdc@_hrms前綴,所以讓我們對其進行更改。 有兩種方法可以做到這一點:

  • 專門為@_sfdc@_hrms尋找:/ /@_(sfdc|hrms)\\.([a-zA-Z\\.])+/g @_sfdc ( @_hrms .([[ /@_(sfdc|hrms)\\.([a-zA-Z\\.])+/g @_hrms / /@_(sfdc|hrms)\\.([a-zA-Z\\.])+/g
  • 或匹配任何以@_開頭的字符串:/ /@_([a-zA-Z\\.])+/g .])+/ /@_([a-zA-Z\\.])+/g 在這種情況下, hrms. sfdc. 由捕獲字符串其余部分的同一塊( [a-zA-Z\\.]+ )捕獲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM