正则表达式组捕获以交换单词位置的部分

Regex Group Capture to swap parts of the word places

我正在尝试编写一个函数,使用 $2$1 将辅音从单词的开头移动到单词的结尾。

我的代码在下面,我研究了这个问题并尝试了我的函数的多种变体。无法理解为什么它不起作用。

function groupCap(s){
  str = s.replace(/(^[b-df-hj-np-tv-z]+)(\.$)/, '');
  return str;
}
groupCap("map");

注意 \.$ 匹配一个点,然后断言字符串末尾的位置。您需要匹配字符串中的任何字符并将其捕获到第 2 组中。

使用

function groupCap(s){
  str = s.replace(/^([b-df-hj-np-tv-z]+)(.*)/, '');
  return str;
}
console.log(groupCap("map"));

如果字符串中可以有换行符,则将 .* 替换为 [^]*,因为 . 不匹配换行符字符,而 [^] 匹配除以下字符以外的任何字符nothing,即BMP平面中的所有字符。