regex 如何在指定字母表之间插入括号(即A,D,F,R)和数字使用正则表达式?

czq61nw1  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(149)

如何在指定字母表之间插入括号(即A,D,F,R)和数字使用正则表达式?
输入:

A1
F42
D3
R6

预期输出:

(A)1
(F)42
(D)3
(R)6

我所尝试的:

let inputString="f42"
let expPattern=/[ADFR]\d{1,3}/ig;
 console.log(inputString.replace(expPattern,"(`$0`)"));

它只返回“$0”。
如何实施更换?

2jcobegt

2jcobegt1#

您应该将字母和数字包含在单独的捕获组中,以便可以在替换字符串中引用它们:

let inputString="F42"
let expPattern=/([ADFR])(\d{1,3})/ig;
console.log(inputString.replace(expPattern,"($1)$2"));
nhn9ugyo

nhn9ugyo2#

如果你想在替换中使用完全匹配,你可以使用一个肯定的前瞻(?=\d{1,3}\b),Assert右边的1-3个数字。
要防止部分匹配,可以使用字边界\b
在替换中,使用表示为$&的完全匹配
请参阅包含所有替换项的regex demo

let inputString="F42"
let expPattern=/\b[ADFR](?=\d{1,3}\b)/ig;
console.log(inputString.replace(expPattern,"($&)"));

相关问题