首页 > 解决方案 > 返回第一个只有大写字母的序列的正则表达式是什么?请参阅下面的一些示例

问题描述

我要返回的示例:

S:\Help\Help\TRN LN--> 我想退货TRN LN

S:\Help\Help\BBBY\Test--> 我想退货BBBY

S:\Help\Help\IBM\Test\OLD--> 我想退货IBM

我已经尝试了以下方法,它适用于我有一个全部大写的单词,但它不适用于上面我想返回 TRN LN 的第一个示例。我如何修改它以访问 TRN LN?

我试过了:

[A-Z]+[A-Z]+?[A-Z]\b

标签: regex

解决方案


如果那么您可以首先使用否定字符类here will always be 1 backslash before the phrase匹配至少一个反斜杠 [^

匹配反斜杠后,您可以在捕获组中捕获匹配的 2 个或更多大写字符 AZ 的第一次出现。

^[^\\\r\n]*\\.*?\b([A-Z]{2,}(?: [A-Z]{2,})*)\b
  • ^字符串的开始
  • [^\\\r\n]*\\匹配 0+ 次而不是反斜杠或换行符,然后匹配\
  • .*?匹配除换行符以外的任何字符非贪婪
  • \b([A-Z]{2,}(?: [A-Z]{2,})*)在组 1中的单词边界之间捕获 2 个或更多大写字符,可选重复空格和 2 个大写字符。

正则表达式演示


推荐阅读