如何使用正则表达式将每5位数字后的字母数字组合转换为带有短划线的大写字母:
123abe5r4t
至123AB-E5R4T
答案 0 :(得分:1)
使用[0-9a-z]{1,5}
作为 match 部分(带有g
选项)和\U\0-
作为 replace 部分。
\U
(在 replace 部分中)负责转换为大写字母。
\0
复制整个匹配项,-
添加负号。
此后唯一要做的就是删除终止符(最后一场比赛之后)。
有关工作示例,请参见https://regex101.com/r/8WXUhd/1
我将以上示例重新制作为正则表达式的JavaScript风格:
var a = '123abe5r4txx234';
var b = a.replace( /[0-9a-z]{1,5}/g, u => u.toUpperCase() + '-').slice(0, -1);
print(a);
print(b);
它打印(源和结果):
123abe5r4txx234
123AB-E5R4T-XX234