regex - 正则表达式:以特定单词开头并排除一组单词
问题描述
我有一些不同模式的文本,如下所示:
bg_table1
bg_table2
bg_table3
mp_table1
mp_table2
mp_table3
user_profile
action_history
artifact_group
如果有人可以为我提供“正则表达式”示例以供选择,那就太好了:
文本仅以bg_ 或mp_ 开头
mp_table1 mp_table2 mp_table3
文本不以bg_或mp_或我将提供的任何其他模式开头
user_profile action_history artifact_group
提前致谢 !
解决方案
使用它来匹配 bg/mp/others
\b(?:bg|mp)_\S+
https://regex101.com/r/HIo1nl/1/
使用它来匹配 bg/mp/others:
\S+(?<!\b(?:bg|mp))_\S+
https://regex101.com/r/Sgj9HE/2/
我用过\S+
这些词,意思是“除了空格之外的任何东西”如果你想更严格,你可以用\w+
or或任何其他东西替换它们。[a-zA-Z0-9]+
\w+
允许字母、数字和_
[a-zA-Z0-9]+
只允许字母和数字。
推荐阅读
- swift - 将数据传回 UIPickerView
- java - 如何在 JEditorPane 中为 html 设置超时
- go - 如何在不转义的情况下从 url 获取参数(golang)
- mysql - 收到错误 #1452 - 无法添加或更新子行”
- c# - 在配置文件中的“命名空间”中命名,可以吗?
- swift - Facebook 登录会冻结应用程序,并且不会在 iOS 13 上打开 Facebook 权限视图
- angular - 角度 ng 更新不起作用 - 保存代理的位置超时?
- python-3.x - 为什么 int 数据类型的大小比 python 中的 float 大?
- r - 选择以()结尾并包含主列 R 的列
- javascript - 将字符串添加到 textarea 元素中的新行