regex - 正则表达式测试字符串是否同时包含大写和小写字母
问题描述
我正在寻找一个正则表达式来测试一个字符串是否同时包含大写和小写字母。我在这方面找到了一些线程,但他们建议使用正向查找,但我似乎无法使其与我的其他表达方式相匹配,我正在寻找测试:
<b>James Smith (ecg)</b>
但是排除这个((ecg)总是小写):
<b>JAMES SMITH (ecg)</b>
到目前为止,我有这个:
<b>[A-z\s\W]+(\(ecg\))?\W?<\/b>
哪个有效,但如果全部大写或全部小写,也将匹配。我试过了,但它仍然匹配所有内容:
<b>(.*(?=.*[a-z])(?=.*[A-Z]).*)[A-z\s\W]+(\(ecg\))?\W?<\/b>
解决方案
您可以使用
<b>(?=[A-Z\s]*[a-z])(?=[a-z\s]*[A-Z])[\sA-Za-z]*(?:\(ecg\))?<\/b>
查看正则表达式演示
细节
<b>
- 一段<b>
文字(?=[A-Z\s]*[a-z])
- 在 0 个或多个大写字母或空格之后,必须至少有一个小写字母(?=[a-z\s]*[A-Z])
- 在 0 个或多个小写字母或空格之后,必须至少有一个大写字母[\sA-Za-z]*
- 零个或多个字母/空格(?:\(ecg\))?
- 可选(ecg)
文本<\/b>
- 一段</b>
文字。
推荐阅读
- cypress - 如何等待 api 调用完成,然后使用 cypress 检查元素是否存在?
- python - 如何从主脚本将导入的模块 blit 到表面上?
- android - 我无法在 Android 中使用 HILT 将 Dao 注入到存储库类
- html - 响应模式 - 列到行
- reactjs - React-Redux 和 React Context API 可以在同一个项目中使用吗?
- ios - 错误说安装后没有安装cocoapods
- spring-boot - 用于 webhook 帖子的 Springboot 身份验证
- django - 如何根据用户的查看权限编辑 Django 对象实例?
- java - 在 Java 中使用正则表达式模式检测非拉丁字符
- shopify - Bold Commerce - 订阅 - 将订单频率标签添加到 Shopify 订单