正则表达式括号包含任何字母

时间:2018-04-29 07:44:56

标签: regex

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

a17(1d34) xc

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

2 个答案:

答案 0 :(得分:1)

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

    标有\([^a-z]*[a-z]+[^a-z]*\)g
  • i

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

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

<强>突破

  • \(与文字开头括号相匹配
  • [^a-z]*匹配字母前面不是字母的任何字符(可以是空白)
    • 在开场范围之后的^字符反转匹配
  • [a-z]+至少匹配一个字母
  • [^a-z]*匹配字母后面的任何不是字母的字符(可以是空白)
  • \)与文字结束括号相匹配
  • 标记i(不区分大小写)将范围a扩展为z,也扩展为大写
  • 标志g(全局匹配)允许您多次匹配

希望它有所帮助!

答案 1 :(得分:-1)

/\((?:\d*[A-Z]+\d*)+\)/gi将与包含至少1个字母的括号匹配。

var rgx = /\((?:\d*[A-Z]+\d*)+\)/gi;
rgx.exec("a17(1d34) xc"); //(1d34)