regex - Regex/Shell - 如何匹配除具有特定模式的所有内容
问题描述
我需要 shell 中的正则表达式来匹配除具有特定模式的字符串之外的所有字符串。
我的特定模式可以是可变的,即每个字符串中的 (i|I)[2 位数字](u|U)[2 位数字] 不应匹配。
例如 :
Some.text.1234.text => 应该匹配
Some.text.1234.i10u20.text => 不应该匹配 Some.text.1234.I01U02.text => 不
应该匹配
Some.text.1234.i83U23.text => 不应该匹配
解决方案
你可以试试:
^(?!.*[tuTU]\d{2}).*$
解释:
^
行首?!.*
消极展望[tuTU]\d{2}
检查是否存在仅跟随 2 位数字的此类字符.*$
如果先前的条件是否定的,则将整个字符串匹配到字符串末尾$
推荐阅读
- python - 使用不同的过滤器在自身上加入数据框
- python - 使用 networkx 和 matplotlib 绘制图形
- python - 使用 flaskform 的密码凭证
- json - jq:错误:语法错误,如果在检查对象是否存在时出现意外,如果不存在则添加默认值
- node.js - Socketio 未在本地主机上的邮递员套接字连接 ui 上连接
- c# - 更改 C# 列表中玩家的前景色
- cassandra - 在 Cassandra 中存储数组
- ubuntu - 在 Ubuntu 20.04 上使用 build.sh 从源代码安装 Redhawk。我收到以下错误:检查 OMNIORB 是
- javascript - 创建自定义动态 JSON 字符串
- sql - postgresql 按时间间隔拆分行