所以我有一个有趣的问题:我有一个字符串,并且在大多数情况下我知道会发生什么:
http://www.someurl.com/st= ????????
除了在这种情况下,? 是大写字母或数字。问题是,字符串中混入了垃圾:字符串被分成 5 或 6 段,中间有很多垃圾:无法打印的字符、外来字符以及普通的旧普通字符。简而言之,看起来像这样的东西:Nyþ=mî;ëMÝ×nüqÏ
通常最后 8 个字符(?)在最后是在一起的,所以目前我只是让 PHP 抓取最后 8 个字符并希望最好。有时,这不起作用,所以我需要一个更强大的解决方案。
这个问题在技术上是无法解决的,但我认为最好的解决方案是从字符串末尾抓取大写或数字的字符。如果我得到 8 个或更多,假设这是正确的。否则,找到 st= 并抓取我需要的字符以填充 8 个字符配额。有没有正则表达式方法可以做到这一点,或者我需要卷起袖子并采用嵌套循环样式?
更新:
为了消除一些混乱,我得到一个像这样的输入字符串:
[garbage]http:/[garbage]/somewe[garbage]bsite.co[garbage]m/something=[garbage]????????
除了垃圾在字符串中不可预测的位置(除了结尾永远不是垃圾),并且具有不可预测的长度(至少,我已经能够在两者中找到模式)。通常 ?s 都在一起,因此我只抓取最后 8 个字符,但有时它们不是,这会导致一些数据丢失并返回垃圾:-\