为了账号安全,请及时绑定邮箱和手机立即绑定

解码无效的已解析字符串,如“u0627u0644u0649 u0627u0644u0623”

解码无效的已解析字符串,如“u0627u0644u0649 u0627u0644u0623”

PHP
子衿沉夜 2022-08-19 10:15:12
我发现了一些数据,其中包括诸如.通常,这些会更像,但数据出了点问题。为了纠正它,我唯一的选择是调整那里的东西。"u0627u0644u0649 u0627u0644u0623"\u0627\u0644\u0649 \u0627\u0644\u0623我没有发现任何字符串是两者和“正常单词”的组合的情况,但这可能会发生。"u0627u0644u0623 u0644 u0627"我还想安全地转换任何类似的东西或它们的组合,以便像“我的字符串将被正确转换。"\u0627\u0644"\u0627\u0644 u0627u0644u0623 u0644 u0627."任何人都可以推荐一个正则表达式或适当的方法来安全地“修复”这些字符串吗?更新如果我们只纠正了我们第一次测试的字符串,以确保它只包含像?这可以安全地完成吗(以及如何)?u0627u0644u0649 u0627u0644u0623现在,我正在使用^(u[A-Fa-f0-9]{4}\s?)+$我的正则表达式可以很好地满足所需的目的。我也同意可能没有保证的解决方案,但到目前为止,这似乎在我的测试用例中起作用。
查看完整描述

1 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

该模式找不到与前导空格匹配的匹配项。^(u[A-Fa-f0-9]{4}\s?)+$

要仅匹配包含空格 () 模式的字符串,可以使用u[A-Fa-f0-9]{4}\s

'~^\s*u[A-Fa-f0-9]{4}(?:\s*u[A-Fa-f0-9]{4})*\s*$~'

观看正则表达式演示

  • ^- 字符串的开头

  • \s*- 0+ 空格

  • u[A-Fa-f0-9]{4} - u然后是四个十六进制字符

  • (?:\s*u[A-Fa-f0-9]{4})*- 0 个或多个序列的出现次数

    • \s*- 0+ 空格

    • u[A-Fa-f0-9]{4} - u然后是四个十六进制字符

  • \s*- 0+ 空格

  • $- 字符串末尾。

您可以将其缩短为PHP。'~^\s*(u[A-Fa-f0-9]{4})(?:\s*(?1))*\s*$~'


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信