繁体   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