正则表达式查找任何后跟冒号的大写单词

标签 regex coldfusion

我需要一个正则表达式来匹配以冒号结尾的大写字符串。该字符串可以包含空格、数字和句点。所以如果:

mystring = "I have a C. GRAY CAT2:"

我想要冷融合表达式

REFind("[A-Z0-9. ][:]",mystring) 

返回数字 9,匹配“C.GRAY CAT2:”。相反,它返回数字 21,仅匹配冒号。我希望正则表达式的更正能够解决该问题。当然,我尝试过很多很多事情。 谢谢!

最佳答案

我建议使用

[A-Z0-9][A-Z0-9. ]*:

请参阅regex demo

详细信息

  • [A-Z0-9] - 大写字母或数字(如果第一个字符可以是数字,则删除 0-9)
  • [A-Z0-9。 ]* - 零个或多个大写字母/数字、. 或空格
  • : - 冒号。

变化

要避免匹配 345: 之类的子字符串,但仍允许 23 VAL: 之类的子字符串,请使用

\b(?=[0-9. ]*[A-Z])[A-Z0-9][A-Z0-9. ]*:

参见this regex demo 。这里, \b(?=[0-9. ]*[A-Z]) 首先匹配单词边界,然后匹配正向先行 (?=[0-9. ]*[ A-Z]) 确保 0+ 个数字、空格或点后面有一个大写字母。

如果您不希望序列开头有数字,即在 I have a 22 C. GREY CAT2: 中,您需要提取 C.灰色 CAT2,使用 Sebastian's suggestion (demo)。

关于正则表达式查找任何后跟冒号的大写单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46449410/

相关文章:

java - 如何生成匹配的 MD5 哈希 : SQL Server nvarchar Field vs. ColdFusion

Python 正则表达式语句

javascript - 如何在 JavaScript 中同时获取正则表达式匹配的开始和结束位置?

javascript - 在 cucumber-js 中检索在特定字符串之前结束的参数

java - java中的正则表达式忽略

amazon-web-services - 创建新存储桶或使用 OpenBD 检查存储桶是否存在时,某些功能似乎不存在

ColdFusion - 使用具有多个字段和多个提交按钮的 cfloop

coldfusion - 从Adobe ColdFusion迁移到替代CFML引擎时会发生什么变化?

jquery - 利用 Coldfusion 返回 json 对象的最简单方法(来自查询)

mysql - 匹配最佳正则表达式