我正在尝试从文本字符串末尾的customer.name
中捕获hello @customer.name
。
然而,我似乎无法获得@
字符。它给出了@customer.name
。
现在我的正则表达式是:
@([0-9a-zA-Z.]+)$
答案 0 :(得分:2)
使用字符串的.match
方法。如果与给定的正则表达式不匹配,结果将是null
,否则它将是一个数组:
@customer.name
customer.name
,即您想要的字符串。请参阅此代码段。您的正则表达式看起来已经正确,您只需要从中拉取捕获组而不是整个匹配的字符串。
const str = "hello @customer.name"
const reg = /@([0-9a-zA-Z.]+)$/;
const match = str.match(reg)
console.log(match)
console.log("Matched string:", match[0]);
console.log("First capture group:", match[1]);
答案 1 :(得分:2)
你的正则表达式工作正常,这里有一些代码使用它来使用正则表达式.exec函数访问你的捕获组。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
let testString ='hello @customer.name',
pattern = /@([0-9a-zA-Z.]+)$/,
match = pattern.exec(testString);
console.log(match[1]); // abc