RegEx字符串拆分和连接[重复]

nmpmafwu  于 2023-05-08  发布在  其他
关注(0)|答案(2)|浏览(121)

此问题已在此处有答案

How can I insert a character after every n characters in javascript?(9个回答)
Add space after every 4th character(9个答案)
inserting period after every 3 chars in a string(3个答案)
Add separator to string at every N characters?(15个回答)
4天前关闭。
我尝试拆分并重新连接字符串以获得URI的片段。
我从一个16个字符的简单ID开始,我必须将它分成8对字符,例如从0b00271180119cce0b/00/27/11/80/11/9c/ce/
有没有什么方法可以只使用一条RegEx指令来实现这一点?
使用类似([A-z0-9]{1,2})的东西,我得到了一个有8个匹配项的组,但我不知道如何将它们重新组合成一个带有分隔符的字符串(在本例中为“/”)。

  • 恐怕下面的指示都不能直接用于我的上下文。问题是我不能使用任何常用的编程语言(Java、JavaScript、PHP等),因为RegEx指令必须在Documentum D2配置(确切地说是自动命名)中的参数内使用。*

先谢谢你了!

b4lqfgs4

b4lqfgs41#

在替换字符串中使用反向引用。$&指的是regexp匹配的内容。

let string = '0b00271180119cce';
let new_string = string.replace(/.{1,2}/g, '$&/');
console.log(new_string);
2w2cym1i

2w2cym1i2#

给出:

const id = "0b00271180119cce";

使用下面的正则表达式:

const regex = /([A-Z0-9]{2})/ig;
  • 注意:这个正则表达式避免了重复和不需要的字符,就像另一个用户对你的问题的评论中提到的那样,但是对于这种情况,const regex = /([a-zA-Z0-9]{2})/g;也可以工作。
    选项1

匹配正则表达式并重新组合成带有分隔符(在本例中为“/”)的字符串的最简单方法是使用正则表达式replace并将匹配的捕获组后跟斜杠插入到输出字符串中。下面是一个JavaScript示例:

const result = id.replace(regex, "$1/");
  • 注意:上面使用$n,其中n是组号
    选项二

你也可以使用正则表达式replace,将函数作为第二个参数来实现:

const result = id.replace(regex, (match, group) => `${group}/`);
  • 注意:如果你只是想把匹配或捕获组复制到替换中,那么这个函数就有点多余了,所以选择1。这只是展示了实现目标的另一种方法。

您可以console.log both result s来观察所需的输出:

console.log(result); // "0b/00/27/11/80/11/9c/ce/"
const id = "0b00271180119cce";
const regex = /([A-Z0-9]{2})/ig;

let result = id.replace(regex, "$1/");
console.log(result);

result = id.replace(regex, (match, group) => `${group}/`);
console.log(result);

相关问题