考虑基于以下内容的字符串: 1.可以包含任何字母数字字符 2.字符串以数字结尾
现在使用preg_match($expression, $subject, $parts)
我希望以一种方式拆分字符串,使得结尾数字和字符串的其余部分分别存储在 $ parts 数组中。
例如:kim2bn88应该分为两部分:kim2bn和88
但我无法弄清楚正则表达式。请帮助!
答案 0 :(得分:1)
您正在搜索的正则表达式必须使用结束边界“$”。
var buf = Convert.FromBase64String(File.ReadAllText(@"base64string.txt"));
int count = 0;
var buf2 = buf.GroupBy(x => count++ / 4)
.Select(g => (byte)(967.644334f * BitConverter.ToSingle(g.ToArray(), 0)))
.ToArray();
File.WriteAllBytes(@"base64string.mp3", buf2);
如果您想避免拆分,请在此搜索旁边尝试此双“组并提取”:
/(\d+)$/
$ parts将包含" 88"," 8"," 8"。数组的第一项将是整个数字子集,然后是每个数字一项。
答案 1 :(得分:0)
我认为你想要一个如下正则表达式:
/^(\w+)(\d+)$/
假设您在最终数字之前总是有非数字。
这为您提供了两个捕获组。第一个是字符串开头的单词字符(字母数字+ _)。第二个是字符串末尾的数字。