在左括号结束之间查找文本

时间:2012-02-14 05:56:08

标签: regex

我需要一个正则表达式来选择左括号右括号之间的所有文本。

示例:

xxxxxxx (Regular Expression) xxxxxxx( One ) xxxxxxx(One Word ) xxxxxxx ( Two Word) 
1) xxxxxxx(lowercase) 
2) xxxxxxx(UPPERCASE)

结果应为:

  1. 第1场比赛:xxxxxxx(正则表达式)
  2. 第2场比赛:xxxxxxx(一场)
  3. 第3场比赛:xxxxxxx(一个字)
  4. 第4场比赛:xxxxxxx(双字)
  5. 第5场比赛:xxxxxxx(小写)
  6. 第6场比赛:xxxxxxx(大写)
  7. 备注: xxxxxxx是任何字符

    谢谢。

2 个答案:

答案 0 :(得分:1)

可以提供帮助的python代码。

>>> import re
>>> s = """xxxxxxx (Regular Expression) xxxxxxx( One ) xxxxxxx(One Word ) xxxxxxx ( Two Word) 
... 1) xxxxxxx(lowercase) 
... 2) xxxxxxx(UPPERCASE)"""
>>> re.findall("([A-Za-z]+ {0,1}\(.*?\))", s, re.MULTILINE)
['xxxxxxx (Regular Expression)', 'xxxxxxx( One )', 'xxxxxxx(One Word )', 'xxxxxxx ( Two Word)', 'xxxxxxx(lowercase)', 'xxxxxxx(UPPERCASE)']
>>> 

"([A-Za-z]+ {0,1}\(.*?\))"是正在使用的正则表达式。

  • [A-Za-z]+表示A-Z或a-z中任何字符的一个或多个出现
  • `{0,1}表示0或1出现空间
  • .*表示一个字符,然后出现零个或多个字符。
  • ?表示非贪婪的方式。
  • \(& /)被反击,因为我们也想要匹配它们。

答案 1 :(得分:0)

试试这个:

[^\(\)]*\([^\)]*\)

这是现场演示:

http://regexr.com?300k2

或者,如果您需要在括号内显式访问内容,并且括号内的内容使用以下regexp,该名称为正确的组提供名称:

(?<outpar>[^\(\)]*)\((?<inpar>[^\)]*)\) 

这也是它的现场演示:

http://regexr.com?300k5