我有一个字符串被解码为base36,即0-9a-z,任何其他字符都被解码如下:一个unicode字符代码,转换为base36,前面是大写字母'A',后面是字母'B'。如果出现多个 unicode 字符,则只有最后一个字符后跟“B”。
例子:
zergme@wtfd-婴儿服饰.com
转换为:
zergmeA1sBwtfdA19Ahv8Ag1rAkctAub4A1aBcom
以这种方式转换数据很方便,但现在我对如何编写解码返回算法感到头疼。
我已经提供了一个将 charcodes 转换为 Unicode chars 的函数,我们称之为 'unichr($code)';
...但我想不出找到这些字符的好方法。
我试图首先使用正则表达式,例如:
preg_replace('/A.*?B?(?=[AB])/',"$1",$mail);
但它并没有按照我想要的方式工作......而且我也没有意识到如何在比赛中投射我的自定义转换函数,即“unichr()”。
然后我也在考虑用 strpos() 手动查找字符,但结果也很混乱。
你能建议一些模式吗?或者我是否应该详细说明正则表达式或尝试使用一些循环?我有点空白...谢谢:)
洛茂
就是这样,看起来我想通了,感谢您的贡献:
'/A(.*?)((?=A)|B)/'