当前位置:网站首页>如何正则匹配乱码?
如何正则匹配乱码?
2022-08-09 22:11:00 【ailx10】
曾经护网的时候,遇到过要写一个正则,匹配文本中包含乱码,当时精神状态比较紧张,没有写出来,事后感觉非常尴尬,不过现在已经释然了,趁着周末休息的时候,简单研究了一下,以防未来还会遇到同样的问题,测试样例如下,包含:中文、英文、韩文、日文、中文标点符号、英文标点符号,以及乱码。
(中文)(¥)(abc+-*/)(한국인)(小さな日本)(��)(中文)(¥)(+-*/)(한국인)(小さな日本)
正则表达式[ -~]+
,可以匹配所有的可打印的ASCII码字符,但是不能匹配中文、中文标点符号以及乱码。
正则表达式[^ -~]+
,可以匹配所有中文、中文标点符号以及乱码,也能匹配日文、韩文。
正则表达式[\u4e00-\u9fa5]+
,可以匹配所有的中文。
正则表达式[\u3002\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5\u00a5]+
,可以匹配所有的中文标点符号。
正则表达式[\u2E80-\u2FDF\u3040-\u318F\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FFF\uA960-\uA97F\uAC00-\uD7FF]+
,可以匹配所有的中日韩文,但是不包含标点符号。
所以,初略的构建一个匹配乱码的正则表达式如下:
[^ -~\u2E80-\u2FDF\u3040-\u318F\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FFF\uA960-\uA97F\uAC00-\uD7FF\u3002\u00a5\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5\u00a5]+
测试如下,效果良好:

如果想要匹配乱码之后的所有文本,可以使用如下正则表达式:
[^ -~\u2E80-\u2FDF\u3040-\u318F\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FFF\uA960-\uA97F\uAC00-\uD7FF\u3002\u00a5\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5]+.*

如果想要匹配包含乱码的整个文本,可以使用如下正则表达式:
[ -~\u2E80-\u2FDF\u3040-\u318F\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FFF\uA960-\uA97F\uAC00-\uD7FF\u3002\u00a5\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5]*[^ -~\u2E80-\u2FDF\u3040-\u318F\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FFF\uA960-\uA97F\uAC00-\uD7FF\u3002\u00a5\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5]+.*

如果文本中不存在乱码,则测试不通过

网络安全任重道远,洗洗睡吧~

边栏推荐
- tiup cluster start
- 华为云全流程护航《流浪方舟》破竹首发,打造口碑爆款
- leetcode:323. 无向图中连通分量的数目
- 月薪5K的运维小白如何成为月薪5W的高级架构师?
- CV review: softmax code implementation
- APS系统能消除造成生产和运输延迟的瓶颈
- leetcode:325. 和等于k的最长子数组长度
- What are the basic steps to develop a quantitative trading strategy?
- Janus官方DEMO介绍
- R语言拟合ARIMA模型并使用拟合模型进行预测推理:使用forecast函数计算ARIMA模型未来值(包含时间点、预测值、两个置信区间)
猜你喜欢
JS中表单操作、addEventListener事件监听器
少儿编程 电子学会图形化编程等级考试Scratch三级真题解析(判断题)2022年6月
HUAWEI CLOUD escorts the whole process of "Wandering Ark" for the first time, creating a popular brand
VR全景结合小程序,为线上电商更好的服务
Good future, want to be a second new Oriental
leetcode:331. 验证二叉树的前序序列化
集群的基础形式
异常处理(try,catch,finally)
【实用工具系列】MathCAD入门安装及快速上手使用教程
matplotlib散点图自定义坐标轴(文字坐标轴)
随机推荐
Bi Sheng Compiler Optimization: Lazy Code Motion
继承关系下构造方法的访问特点
shell数组
leetcode:323. 无向图中连通分量的数目
如何坚持使用程序化系统?
R语言拟合ARIMA模型并使用拟合模型进行预测推理:使用forecast函数计算ARIMA模型未来值(包含时间点、预测值、两个置信区间)
【对象——对象及原型链上的属性——对象的操作方法】
R语言ggstatsplot包grouped_ggscatterstats函数可视化分组散点图、并添加假设检验结果(包含样本数、统计量、效应大小及其置信区间、显著性、组间两两比较、贝叶斯假设)
生成NC文件时,报错“未定义机床”
【微信小程序开发(八)】音频背景音乐播放问题汇总
shell array
p5.js实现的炫酷星体旋转动画
HBuilder X 不能运行到内置终端
杭电多校-Counting Stickmen-(思维+组合数+容斥)
【Burning】It's time to show your true strength!Understand the technical highlights of the 2022 Huawei Developer Competition in one article
【AtomicInteger】常规用法
leetcode:319. 灯泡开关
一体化伺服电机在三轴钻孔机中的应用
DXF笔记:文字对齐的研究
制定量化交易策略的基本步骤有哪些?