2014-09-23 208 views
-5

替换某些字符串我感到愚蠢,但我完全新的Python和我有个任务,以取代在与空字符串模式。正则表达式在Python

字符串类型的“xyz.xyz(1,2,3)”应与“NULL”(在两种情况下并非双引号)被替换。

喜欢的东西 - 字符串S = “ABC xyz.xyz(1,2,3)PQR” 应成为 S = “ABC NULL PQR”

S可含有xyz.xyz(10,20,30 )或xyz.xyz(1)..即内部的任何东西都可以出现。

+1

替换'XYZ \名为.xyz \([^)] * \)'与'NULL' – hjpotter92 2014-09-23 08:10:48

回答

0

您需要正则表达式是:

import re 

s = 'abc xyz.xyz(1, 2, 3) pqr' 

re.sub(r'[a-z]{3}\.{[a-z]{3}\([^)]*\)', 'NULL', s) 

说明:

  • [a-z]{3}代表3个小写字母(小写)
  • \.逃脱点,因为它是特殊字符
  • [a-z]{3} 3再次小写字母
  • \(逸出的左括号
  • [^)]*任何字符,但右括号,0或更多的时间
  • \)逸出的右括号
+0

谢谢。很好的解释。开始学习正则表达式:) – user2952821 2014-09-23 10:44:10