python - 下划线和字符串的 Python 正则表达式匹配
问题描述
我有以下格式的字符串:
在第一个和第二个下划线之间,文本是“red”或“blue”,在第二个下划线和第一对双下划线之间,文本是“one”或“two”。在第一组双下划线之间是一个名称。这可以包括单个名字或由单个下划线分隔的名字和姓氏。这个 Name 部分由双下划线包围定义,任何单下划线都表示它是 Name 的一部分。(注意,Name 的第一个字母必须是 CAPS)。下一组双下划线之间是一个昵称。同样,昵称可以是多个单词,但由一个下划线分隔。在第二组双下划线之间检测到的任何内容都将被视为昵称。第三个双下划线之后的其余部分可以是任何东西。如果需要多个单词,可以用一个下划线分隔。不必有字符串的剩余部分。
这是我到目前为止的正则表达式:
always_(?:red|blue)_(?:one|two)__[A-Z]{1,1}....
我不想使用 \w+ 来检查使用下划线的名称,因为这也将匹配名称后面的双下划线。我被困在哪里去。
为了进一步澄清,我想捕获任何不遵循该格式的字符串。
解决方案
我想出了
always_(red|blue)_(one|two)__((?:[A-Z][a-z]+_?)+)__((?:_?[a-z]+)+)(?:__(\w+))?
适用于此处的示例,您可能需要进行更多测试
推荐阅读
- sql - sql联合!额外的结果
- php - excel 或 php 公式在发票延迟每 5 个月时添加费用
- discord.js - 删除和添加角色静音命令
- oracle - 如何在oracle sql developer中选择存储过程输出参数作为表
- c# - DropDownList 总是删除第一个值?
- makefile - 如何在 makefile 中使用 g++ 编译位于不同目录中的源文件和头文件?
- visual-studio - 如何使代码抑制消息始终以英文显示?
- mathematical-optimization - N个产品与M个特征的最优组合
- angular - 为什么我在使用 Microsoft Graph REST API 使用 Angular 调用此端点时会收到 403 禁止响应?
- r - R,data.table - 为多个表创建新列