我有以下字符串: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;
答案 0 :(得分:0)
/@_[\w\.]+/g
这与“ @_”匹配,后跟字母,数字或点(.
)的任意序列。
答案 1 :(得分:0)
您在正确的道路上,几乎在那儿!这里的主要错误是.
是正则表达式中的保留字符,表示“任何字符”。要真正匹配点字符,您需要使用反斜杠对其进行转义:\.
因此,您的正则表达式变为/@_sfdc\.([a-zA-Z])\.+/g
要注意的另一件事是,您想匹配同一组中的字母和点,而当前表达式则要求匹配以点结尾。
因此,让我们在匹配的组方括号内移动该点:
/@_sfdc\.([a-zA-Z\.])+/g
。
也说您要同时匹配@_sfdc
和@_hrms
前缀,所以让我们对其进行更改。
有两种方法可以做到这一点:
@_sfdc
和@_hrms
:/@_(sfdc|hrms)\.([a-zA-Z\.])+/g
@_
开头的任何字符串:/@_([a-zA-Z\.])+/g
。在这种情况下,hrms.
和sfdc.
由捕获其余字符串([a-zA-Z\.]+
)的同一块捕获。