我们有一些错误的代码已写入对象属性名称中有冗余单词的地方,我们正在尝试使用搜索和替换在整个应用程序中找到这些罪魁祸首。
举个例子,想象一个人物对象,其属性也包含单词person,即
var person = new Person();
person.personName = 'Mark';
person.personAge = 20;
在这种情况下,我们知道单词person
,但不知道整个应用程序中在该对象上设置的所有属性。
使用Regex,我们是否能找到匹配person *的任何东西,其中通配符总是大写字母,即camelCase?我们希望仅使用personName
替换name
。
我考虑过搜索.person
,但它给了我很多不必要的结果。
答案 0 :(得分:3)
当我搜索项目时,这个正则表达式对我很有用(不确定你正在使用哪个IDE):
import urllib2
for x in range(1, 20000):
url = "http://etutorium.ru//webinaryService//users/seminar@aktivcorp.com/archive/" + str(x) + "/seminar@aktivcorp.com" + str(x) + ".flv"
file_name = None
u = None
f = None
meta = None
file_size = None
file_size_dl = None
block_sz = None
status = None
file_name = url.split('/')[-1]
u = urllib2.urlopen(url)
f = open(file_name, 'wb')
meta = u.info()
file_size = int(meta.getheaders("Content-Length")[0])
print "Downloading: %s Bytes: %s" % (file_name, file_size)
file_size_dl = 0
block_sz = 8192
while True:
buffer = u.read(block_sz)
if not buffer:
break
file_size_dl += len(buffer)
f.write(buffer)
status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
status = status + chr(8)*(len(status)+1)
print status,
f.close()
说明:
\.person[A-Z]
是匹配句点(你必须在正则表达式中将其转义,否则它意味着匹配任何单个字符)
\.
只匹配人
person
匹配任何大写字母