首页 > 解决方案 > 包含任何字母的正则表达式括号

问题描述

我需要找到包含任何字母的括号。例如:

a17(1d34) xc

前面的括号包含字母d
所以我需要找到: (1d34)

标签: regex

解决方案


以下正则表达式可以完成这项工作:

  • \([^a-z]*[a-z]+[^a-z]*\)带着旗帜gi

您可以使用regex101的现场演示对其进行测试,以检查它是否适用于您期望的所有情况。

另外我不知道你使用的语言,regex101 让你为一些生成代码。

突破

  • \(匹配文字左括号
  • [^a-z]*匹配字母之前的任何非字母字符(可以是任何字符)
    • 开头范围之后的^字符反转匹配
  • [a-z]+至少匹配一个字母
  • [^a-z]*匹配字母后面不是字母的任何字符(可以是空)
  • \)匹配文字右括号
  • 标志i(不区分大小写)将范围扩展az, 也大写
  • 标志g(全局匹配)让您匹配多次

希望能帮助到你!


推荐阅读