regex - 正则表达式,查找大写代码,但不包括以美元符号开头的数字
问题描述
我有看起来与此类似的字符串...
如果您想在店内购物,请使用此优惠券 ZXXZX123 在店内购物满 100 美元或以上可节省 20 美元,或 500 美元或以上可节省 100 美元。”
最后我想要的是ZXXZX123
我已经开始查找大写字母和数字,并且必须至少为 2 个字符。在那之后,我不确定如何不包括其他人。我想我的其他短语包括 20% 的折扣,所以我也不想包括这些类型的数字。
[A-Z0-9]{2,}
解决方案
您可以使用环视来确保匹配整个单词(空格之间的字符串):
(?<=\s|^)[A-Z0-9]{2,}(?=\s|$)
解释:
(?<=\s|^)
是正向向后看,它确保在匹配的下一个字符之前有一个空格,或者这是字符串的开头(?<=\s|$)
是正向前瞻,它确保在匹配的前一个字符之前有一个 after 这是字符串的结尾
推荐阅读
- flutter - 您如何知道用户何时滚动到列表颤动中的下一个小部件(之前的小部件不再可见)
- c# - ILASM.exe 显示关于 System.Memory 包的不同版本
- jquery - 为什么 Sonatype 将 jQuery 3.6.0 标记为具有原型污染漏洞,即使它已修复?
- python - 如何让我的代码根据用户输入重新启动?
- amazon-web-services - SageMaker object2vec - 如何下载模型工件并在本地使用?
- visual-studio-code - 在 chrome 中打开带有 multilpe 配置文件的链接
- c# - 如何从字符串创建 LambdaExpression?
- javascript - React-Select 重复项和用例
- react-native - 带有 NativeBase 工厂的 Expo Ionicons 的道具类型
- android - 在颤动中实现实时推送通知 - 用于订购目的