perl - Perl 中的模糊匹配
问题描述
我想用不同的字符串做一些模糊匹配,比如
air twist
应该匹配air-twist
or air twists
or air-twists
。
在 perl 中,我们是否有一些模块可以做到这一点?还是我们可以手动执行,例如使用正则表达式?
解决方案
如果您只想匹配两个特定单词之间的任何非字母数字字符,则可以使用如下正则表达式:
/air[^a-z0-9]twists/i
[^a-z0-9]
匹配任何不是字母或数字的字符;因此它将匹配空格或标点符号等内容。尾随i
后缀告诉正则表达式忽略字母大小写。
这个特定的正则表达式将匹配如下字符串:
air twists
AIR TWISTS
Air-Twists
AIR_TWISTS
air/twists
air.twists
air:twists
... 等等。
如果要匹配多个分隔单词的非字母数字字符,+
请在正则表达式中添加 a:
/air[^a-z0-9]+twists/i
这匹配更多的字符串,如下所示:
air twists
air---twists
air, twists
air && twists
air<=>twists
推荐阅读
- javascript - 如何在模板中将 ref 从父组件传递给子组件
- python - 在 pyautogui 安装期间出现错误“TypeError:'encoding' is an invalid keyword argument for this function”
- r - 如何将属于一组的元素排列在一行中
- asp.net-mvc-5 - 从使用 epplus 生成的不是网格线的 excel 中删除不需要的水平蓝线
- powershell - 逐行检查文件内容
- tensorflow - 更改 vggface 预保留模型的输入大小
- angular - 当我更新了角度版本 7.0 -> 8.0。不更改 tsconfig.json 文件上的目标
- spring - 注释@Value 在我的服务中不起作用
- python-3.x - 加快移动平均计算
- node.js - 如何在后端发送的前端中获取贝宝结帐链接