草庐IT

re-entrant

全部标签

python re.X vs automagic 行延续

Python提供了一个标志(re.Xorre.VERBOSE)以允许对正则表达式进行注释:a=re.compile(r"""\d+#theintegralpart\.#thedecimalpoint\d*#somefractionaldigits""",re.X)但是,通过自动字符串连接,您可以实现基本相同的目标:a=re.compile(r'\d+'#integralpartr'\.'#decimalpointr'\d*'#optionalfractionaldigits)我不认为我真的见过使用后一种形式,但是(恕我直言)它使正则表达式更容易阅读(我不需要试图弄清楚哪个空格已被转义,

Python re 模块的缓存清除

在阅读有关Pythonre模块的文档时,我决定查看re.py源代码。当我打开它时,我发现了这个:_cache={}_MAXCACHE=100def_compile(*key):cachekey=(type(key[0]),)+keyp=_cache.get(cachekey)ifpisnotNone:returnp#...HereIskipsomepartofirrelevanttothequestioncode...iflen(_cache)>=_MAXCACHE:_cache.clear()_cache[cachekey]=preturnp为什么缓存在达到_MAXCACHE个条目时

python - 如何使用 re.findall() 使用符号组名

是否可以使用(?P...)访问在正则表达式中定义的符号组名称相当于re.findall()?使用re.match(),重新返回一个MatchObject函数.group('toto')可以使用...我想做一些接近的事情。这是一个例子:importremy_str='toto=1,bip=xyz,toto=15,bip=abu'printre.findall('toto=(?P\d+)\,\sbip=(?P\w+)',my_str)它返回:[('1','xyz'),('15','abu')]我想要这样的东西:[{'toto':'1','bip':'xyz'},{'toto':'15','

python - 如何确保 re.findall() 停在正确的位置?

这是我的代码:a='aaaaaa2aaa3'importrere.findall(r'(.*)',a)结果是:[('title','aaaaaa2aaa3','/title')]如果我曾经设计过一个爬虫来获取网站标题,我最终可能会得到类似这样的东西而不是网站标题。我的问题是,如何限制findall到一个? 最佳答案 如果您只想要一个匹配项,请使用re.search而不是re.findall:>>>s='aaaaaa2aaa3'>>>importre>>>re.search('(.*?)',s).group(1)'aaa'如果您想要所

Python 正则表达式 re.match,为什么这段代码不起作用?

这个问题在这里已经有了答案:Whatisthedifferencebetweenre.searchandre.match?(9个回答)关闭去年。这是用Python编写的,importres='189059809102/30589533IronMan30SantaAnaMassagetable/IronMan30SantaAnaMassagetable'pattern='\s(\d{11})/(\d{8})'re.match(pattern,s)它没有返回。我试着把括号拿掉,pattern='\s\d{11}/\d{8}'它仍然返回none。我的问题是:为什么re.match找不到任何东

Python 正则表达式编译(使用 re.VERBOSE)不工作

我试图在编译正则表达式时添加注释,但在使用re.VERBOSE标志时,我再也得不到匹配结果了。(使用Python3.3.0)之前:regex=re.compile(r"Dukewann",re.IGNORECASE)print(regex.search("Heiscalled:DukeWAnn.").group())输出:WAnn公爵之后:regex=re.compile(r'''Duke#FirstnameWann#LastName''',re.VERBOSE|re.IGNORECASE)print(regex.search("Heiscalled:DukeWAnn.").group

python - re.sub 不替换所有事件

我不是Python开发人员,但我正在使用Python脚本来convertSQLitetoMySQL建议的脚本很接近,但没有雪茄,正如他们所说。给我一​​个问题的行是:line=re.sub(r"([^'])'t'(.)",r"\1THIS_IS_TRUE\2",line)...当然还有false('f')的等效行。我看到的问题是任何给定行中只有第一次出现的“t”被替换。所以,输入脚本,INSERTINTO"cars"VALUES(56,'BugattiVeyron','BUG1',32,'t','t','2011-12-1418:39:16.556916','2011-12-1511:

python re.sub,只替换部分匹配

这个问题在这里已经有了答案:Whydoesre.subreplacetheentirepattern,notjustacapturinggroupwithinit?(4个答案)关闭去年。我刚接触python我需要用一个正则表达式匹配所有情况并进行替换。这是一个示例子字符串-->期望的结果:-->我正在尝试在我的代码中这样做:myString=re.sub(r'\它不是替换之后的所有内容,而是替换所有内容并只返回'>'有没有办法让re.sub只替换捕获组而不是整个模式?

python - Re.sub 不适合我

我正在尝试让re.sub替换一个用值指定的模式,例如forlinesinf:pattern='\${2}'+key[0]+'\${2}'re.search(pattern,lines)这将返回找到模式的行。例如,如果得到,这是测试返回之一这是$$test$$我遇到的问题是当我执行以下操作时re.sub(pattern,key[1],lines)没有任何反应。我错过了什么?欲了解更多信息key[0]=test和key[1]=replace所以我想做的是,每当遇到“$$test$$”时,它都会用“replace”替换它。我很容易找到“$$test$$”,但由于某些原因re.sub没有替换它

Python 正则表达式 :combining re pattern format with a variable

我想结合一个python变量和模式。我该怎么做?下面是我想做的。re.search(r'**some_variable+pattern**',str_for_pattern_match,flags)感谢您的帮助。 最佳答案 通常的字符串格式化方式效果很好re.search(r'**%s+pattern**'%some_variable,str_for_pattern_match,flags) 关于Python正则表达式:combiningrepatternformatwithavaria