我有一个以下模式的字符串: " x44A-x440-x427-x45E-Yellow-apple",对于十六进制数字(unicode字符)我想用#字符替换那些破折号并将#也附加到第一个破折号。这些十六进制代码可以是unicode char范围中的任何一个。请帮助正则表达式实现我的目标,最好在perl中。感谢
答案 0 :(得分:1)
您在寻找
吗?s/x([0-9a-fA-F]{1,5})/ chr hex $1 /eg
答案 1 :(得分:0)
为了删除两者之间的破折号,可以将ikegami的解决方案修改为此。
s/(?:^|-)x([0-9a-fA-F]{1,5})/ chr hex $1 /eg;
(?:^|-)
部分表示' x'在字符串的开头或短划线后面。 ($: ... )
是一个非捕获分组。