我真的很想知道我是否真的是第一个问这个问题的人,还是我如此盲目地找到一些关于这个问题的信息…

我有一个较长的文本,我想剥离它的base64编码的字符串

I am a text and have some lines with some content

There are more than one line but sometimes I have

aSBhbSBhIG5vcm1hbCB0ZXh0IHRoYXQgd2FzIGNvZ

GVkIGluIGJhc2UgNjQgYW5kIG5vdyBpIHdhcyB0cmFu

c2xhdGVkIGJhY2sgdG8gYmxhbmsgdGV4dGZvcm1hd

C4gaSB0aGFuayB5b3UgZm9yIHBheWluZyBhdHRlbnRp

b24uIGJ5ZQ==

and this is what I want to strip / extract by using php

如您所见,文本中有base64编码的数据,我想提取/分割这些行.

我已经尝试了很多类似的正则表达式示例

$regex = '@^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$@m';

preg_match($regex, $content, $output_array );

但这并没有解决任何问题…

我需要的是仅选择基本字符串的正则表达式…

这有可能吗?我的意思是正则表达式可以选择base64吗?我猜 :)

编辑:字符串源是电子邮件的内容

EDIT2:猜测这种情况下的最佳语法,以便跟踪具有多个大写字符且可以有数字且没有空格的字符串.但是正则表达式不是我的日常食物:D

解决方法:

首先:您不能可靠地做到这一点!

为什么?

很简单,在某些情况下,base64之所以如此出色的原因是,它使用“标准”字符对所有数据进行编码.那些用于普通文本,句子甚至是甚至是单词的单词.

背景

“ Hello”是base64编码的字符串吗?好吧,是的,其含义是“有效的base64编码”.它可能会返回很多乱码,但这是一个base64-ok字符串.

因此,您只能决定一个长度,在此长度之后,您可以认为所连接的字符没有任何空格进行base64编码.当然,在德语这样的语言中,您可能在这里遇到很多麻烦,因为那里有一个复合名词,例如“Bäckerfachverkäuferinnenhosenherstellungsautomatenzuliefererdienst”或诸如此类.

解决方法

因此,从长度上来说,您必须自行决定,然后就可以这样做:

[a-zA-Z0-9\+\/\=]{20,}

我认为“ 20”是此处“ base64编码的内容”的最小长度,但是正如您所说,这取决于您.另外,请注意,=并不是真正的编码内容,而是填充字节,但我仍将其添加到了正则表达式中.

编辑:Gnah ..您甚至可以在我的示例中看到我没有抓住最后一行:)将数字更改为12时,它在这里可以正常工作,但是可能有超过12个字符的单词…所以-如前所述,以这种方式并不是真的可靠.

标签:php,regex

来源: https://codeday.me/bug/20191119/2033854.html

php 截取base64内容,PHP-从长文本中删除Base64字符串相关推荐

  1. 提取文本中的汉字字符串

    java 编程点滴 提取文本中的汉字字符串 提取文本中的汉字字符串 代码中含有中文字符,希望将代码中的中文字符提取出来,输出到数据库表格,然后补充对应的英文翻译. 继续处理代码,将文中的中文字符,通过 ...

  2. 在长文本中当中使用正则表达式匹配限定长度范围的数字串的方法

    s1 = "\D([1-9]{1})(\d{14,18}\D)" s2 = "aa123333333399999999999999aaaaaaa1234567891234 ...

  3. base64 python兼容js_无法在中读取Base64编码的图像节点.js它是从Python发送的

    我试图在节点.js还有Python.对于这个任务,我使用节点.js的pythonshellnpm模块来运行python脚本并读取打印输出.我想在Python上做一些图片处理节点.js并将其应用于申请. ...

  4. java怎么清空一个文件内容_如何从文本文件中删除特定内容? - java

    我正在Java的SO的帮助下从事此项目的工作,正在读取一个文件夹,然后将其内容写入文件.然后,我需要浏览该内容,仅保留末尾带有Thumbnail.jpg的图像. 编辑: public static f ...

  5. python抓取文本字段_使用Python提取文本中含有特定字符串的方法示例

    今天搞了一天的文本处理,发现python真的太适合做数据处理了.废话不多说,一起学习吧! 1.我的原始数据是这样的,如图 2.如果要提取每行含有pass的字符串,代码如下: import re fil ...

  6. php查找空白行,如何从PHP文本中删除空白行?

    小编典典 // New line is required to split non-blank lines preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[ ...

  7. php过滤文件中的空行,如何从PHP文本中删除空行?

    // New line is required to split non-blank lines preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n] ...

  8. shell批量替换文本中的多种字符串

    需求,需要把文件中,aa替换成AA,bb替换成BB, cc替换成CC, 脚本如下: SRC_STR=(aa bb cc) DST_STR=(AA BB CC) CMAKE_CONFIG=${DST_S ...

  9. python删除文件部分内容_如何在python中删除文件的一部分?

    基本上你不能从文件的开头删除东西,所以你必须写入一个新文件. 我认为pythonic方式看起来像这样: # get a iterator over the lines in the file: wit ...

最新文章

  1. Python 之 Numpy (四)索引
  2. 光纤测试时怎么选择对应项目的测试标准及测试仪?
  3. php怎么排除空的数组,【技术产品】php如何去除空数组
  4. Java并发编程笔记—基础知识—实用案例
  5. ntp时间同步会导致mysql关闭吗_NTP 时间同步网络弱电系统安全监测平台研究
  6. 一些比较隐秘的OJ的网址
  7. 信工所复试收集材料分享
  8. nginx直接打印输出_Nginx 日志打印POST数据
  9. 如何把图片压缩到200k?怎么压缩图片大小kb?
  10. 工作两年简历写成这样,谁要你呀!
  11. Python爬虫获取电影链接(续)
  12. 寒假训练1—H(第一次写出结构体数组)
  13. 如何使用VSCode开发Qt项目?
  14. 告诉你宇宙的真相:现代观点
  15. 麦克风阵列研究3 定向录音
  16. 2019年9月 黑马头条项目14天
  17. mac装linux系统u盘安装教程视频,mac上制作linux系统U盘安装盘
  18. java_实现公历转农历代码
  19. 用excle插入自定义两列(行)数据作为X、Y轴生成图表
  20. 某位死磕成都的程序员面试总结,字节+OPPO+研究所+国企,应该选择国企吗?

热门文章

  1. linux从表中提取信息,如何用Linux命令提取表格文本中的某列
  2. php的select case语句,调用不同SELECT语句的MySQL IF / CASE语法
  3. 电子商务概论_大学专业介绍之“电子商务专业”
  4. 创建font_使用CSS3 CubicBezier创建动画链接悬停效果
  5. clone远程代码 在不同电脑上git_如何使用git在本地电脑clone别人的github上的远程仓库代码...
  6. c++ ea 代码 生成_EA生成实体类代码
  7. svn mysql_SVN使用MySQL验证用户名密码(HTTP)
  8. mysql 返回自增id_mysql 返回自增id
  9. php urledcode_攻防世界 php 2 函数urldecode 使用说明
  10. 闪电邮修改服务器设置,网易闪电邮添加outlook邮箱的方法(图文教程)