草庐IT

re-written

全部标签

python - 是否可以从 Python 中使用 re2?

我刚刚发现http://code.google.com/p/re2,一个很有前途的库,它使用一种长期被忽视的方式(ThompsonNFA)来实现一个正则表达式引擎,该引擎可以比awk、Perl或Python的可用引擎快几个数量级。所以我下载了代码并做了通常的sudomakeinstall事情。但是,该操作似乎只是将/usr/local/include/re2/re2.h添加到我的系统中。似乎还有一些*.a文件,但是这个*.a扩展名是什么?我想使用Python中的re2(最好是Python3.1),并且很高兴在发行版中看到像make_unicode_groups.py这样的文件(可能只是

python - 是否可以从 Python 中使用 re2?

我刚刚发现http://code.google.com/p/re2,一个很有前途的库,它使用一种长期被忽视的方式(ThompsonNFA)来实现一个正则表达式引擎,该引擎可以比awk、Perl或Python的可用引擎快几个数量级。所以我下载了代码并做了通常的sudomakeinstall事情。但是,该操作似乎只是将/usr/local/include/re2/re2.h添加到我的系统中。似乎还有一些*.a文件,但是这个*.a扩展名是什么?我想使用Python中的re2(最好是Python3.1),并且很高兴在发行版中看到像make_unicode_groups.py这样的文件(可能只是

python - 使用 Python re.match 提取字符串

importrestr="x8f8dL:s://www.qqq.zzz/iziv8ds8f8.dafidsao.dsfsi"str2=re.match("[a-zA-Z]*//([a-zA-Z]*)",str)printstr2.group()currentresult=>errorexpected=>wwwqqqzzz我要提取字符串wwwqqqzzz。我该怎么做?可能有很多点,比如:"whatever..s#$@.d.:af//wwww.xxx.yn.zsdfsd.asfds.f.ds.fsd.whatever/123.dfiid"在这种情况下,我基本上想要由//和/界定的东西。我如

python - 使用 Python re.match 提取字符串

importrestr="x8f8dL:s://www.qqq.zzz/iziv8ds8f8.dafidsao.dsfsi"str2=re.match("[a-zA-Z]*//([a-zA-Z]*)",str)printstr2.group()currentresult=>errorexpected=>wwwqqqzzz我要提取字符串wwwqqqzzz。我该怎么做?可能有很多点,比如:"whatever..s#$@.d.:af//wwww.xxx.yn.zsdfsd.asfds.f.ds.fsd.whatever/123.dfiid"在这种情况下,我基本上想要由//和/界定的东西。我如

python - 在python中使用re.sub将字母变为大写?

在许多编程语言中,以下找到foo([a-z]+)bar并替换为GOO\U\1GAR将导致整个匹配变为大写。我似乎在python中找不到等价物;存在吗? 最佳答案 您可以将函数传递给re.sub()这将允许您执行此操作,这是一个示例:defupper_repl(match):return'GOO'+match.group(1).upper()+'GAR'还有一个使用它的例子:>>>re.sub(r'foo([a-z]+)bar',upper_repl,'foobazbar')'GOOBAZGAR'

python - 在python中使用re.sub将字母变为大写?

在许多编程语言中,以下找到foo([a-z]+)bar并替换为GOO\U\1GAR将导致整个匹配变为大写。我似乎在python中找不到等价物;存在吗? 最佳答案 您可以将函数传递给re.sub()这将允许您执行此操作,这是一个示例:defupper_repl(match):return'GOO'+match.group(1).upper()+'GAR'还有一个使用它的例子:>>>re.sub(r'foo([a-z]+)bar',upper_repl,'foobazbar')'GOOBAZGAR'

python re.split() 以空格、逗号和句点分隔,但在 1,000 或 1.50 等情况下则不行

我想使用pythonre.split()将字符串按空格、逗号和句点拆分为单个单词。但我不希望将"1,200"拆分为["1","200"]或["1.2"]以被拆分成["1","2"].例子l="onetwo3.45,6seven.eightnine,ten"结果应该是["one","two","3.4","5,6","seven","eight","nine","ten"] 最佳答案 使用否定的前瞻和否定的后瞻:>s="onetwo3.45,6seven.eightnine,ten">parts=re.split('\s|(?换句话说

python re.split() 以空格、逗号和句点分隔,但在 1,000 或 1.50 等情况下则不行

我想使用pythonre.split()将字符串按空格、逗号和句点拆分为单个单词。但我不希望将"1,200"拆分为["1","200"]或["1.2"]以被拆分成["1","2"].例子l="onetwo3.45,6seven.eightnine,ten"结果应该是["one","two","3.4","5,6","seven","eight","nine","ten"] 最佳答案 使用否定的前瞻和否定的后瞻:>s="onetwo3.45,6seven.eightnine,ten">parts=re.split('\s|(?换句话说

Python re.sub 反向引用而不是反向引用

这个问题在这里已经有了答案:Handlingbackreferencestocapturinggroupsinre.subreplacementpattern(2个回答)关闭3年前。我有以下几点:test我有以下几点:fileText=re.sub("(.*?)","\1",fileText,flags=re.DOTALL)其中fileText是我在上面发布的字符串。当我在运行正则表达式替换后打印出fileText时,我回来了而不是预期的test现在我对正则表达式相当精通,我知道它应该可以工作,事实上我知道它匹配正确,因为当我进行搜索并打印出groups但我是python新手,我很困惑

Python re.sub 反向引用而不是反向引用

这个问题在这里已经有了答案:Handlingbackreferencestocapturinggroupsinre.subreplacementpattern(2个回答)关闭3年前。我有以下几点:test我有以下几点:fileText=re.sub("(.*?)","\1",fileText,flags=re.DOTALL)其中fileText是我在上面发布的字符串。当我在运行正则表达式替换后打印出fileText时,我回来了而不是预期的test现在我对正则表达式相当精通,我知道它应该可以工作,事实上我知道它匹配正确,因为当我进行搜索并打印出groups但我是python新手,我很困惑