gpt4 book ai didi

objective-c - 正则表达式在不构成合法两位数转义序列开头的字符串中查找 % 符号?

转载 作者:行者123 更新时间:2023-12-01 09:26:50 27 4
gpt4 key购买 nike

我想要一个正则表达式来查找源字符串中构成有效的两位十六进制数字转义字符 (定义为 % 后跟恰好两个十六进制数字(大写或小写),可用于仅用 %25 替换这些 % 符号.

(动机是做出最佳猜测尝试从各种来源的字符串中创建合法转义的字符串,这些字符串可能是合法百分比转义,也可能不是,甚至可能是两者的混合,如果原始字符串已经正确编码,则不会损坏数据意图,例如通过全面重新编码)。

这是一个示例输入字符串。

He%20has%20a%2050%%20chance%20of%20living%2C%20but%20there%27s%20only%20a%2025%%20chance%20of%20that.

这不符合任何编码标准,因为它是有效转义字符的混合,例如。 %20 和两个松散的百分比符号。我想将那些 % 转换为 %25

到目前为止,我的进展是确定一个正则表达式 %[0-9a-z]{2},它可以找到 合法的 % 符号,但我不能弄清楚如何修改它以找到那些合法的。

最佳答案

%(?![0-9a-fA-F]{2})

应该可以解决问题。使用前瞻查找后跟有效的两位十六进制值的 %,然后将找到的 % 符号替换为您的 %25替换。

(希望这适用于(大概)NSRegularExpression,或者您正在使用的任何东西)

关于objective-c - 正则表达式在不构成合法两位数转义序列开头的字符串中查找 % 符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5900541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com