Python 正则表达式入门
我试图在控制台中简单地使用正则表达式,但我不能 我做错了什么?我想我正在使用python 3.5 首先,我尝试在字符串对象上使用Python 正则表达式入门,python,regex,python-3.x,console,Python,Regex,Python 3.x,Console,我试图在控制台中简单地使用正则表达式,但我不能 我做错了什么?我想我正在使用python 3.5 首先,我尝试在字符串对象上使用.replace 然后我导入了re模块,但即使是re.sub 我基本上不知所措。我只是想尝试一下正则表达式,这样我就可以学习如何使用它们了 你能帮我开始吗 对我不起作用的代码是: m = "555.555.5555" mm = m.str.replace(r"'.'","helloworld") mm >> 555.555.5555 import re mm
.replace
然后我导入了re
模块,但即使是re.sub
我基本上不知所措。我只是想尝试一下正则表达式,这样我就可以学习如何使用它们了
你能帮我开始吗
对我不起作用的代码是:
m = "555.555.5555"
mm = m.str.replace(r"'.'","helloworld")
mm
>> 555.555.5555
import re
mm = re.sub(r"'.'","helloworld",m)
mm
>> 555.555.5555
p、 美国
我这里有一些我试图模仿的代码
df.CODE.str.replace(r"\A'(E?[V\d]\d\d)(\d*).*", r'\1.\2')
这确实有效,但我不明白为什么。我读到的所有东西都说replace不使用regex,你应该使用
re
模块,但无论如何。我不明白它为什么会起作用。问题是您试图在字符串替换中使用正则表达式-字符串替换不支持正则表达式,因为您需要导入并使用re或regex库
>>> import re
>>> m = "555.555.5555"
>>> >>> mm = re.sub(r"(\d\d)\.(\d)?", m, "helloworld")
>>> mm
'helloworld'
你已经成为会员足够长的时间了,你知道你不应该在问题中发布文本图像,你应该为你的问题提供答案。不。请不要发布这样的图片。粘贴代码,并用你的话引用有问题的代码。我已经把代码放在我尝试过的地方了。我撤回了我的反对票和反对票。将代码作为文本过帐是StackOverflow的一个重要规范。图像通常会被删除或以新的URL结束,从而给未来的用户带来麻烦。
re.sub()
失败的原因是这种模式。模式r“.”“
匹配一个单引号,后跟任何字符(这是正则表达式中句点的意思)和另一个单引号。要匹配文字
,您需要对其进行转义,以便按字面匹配。正则表达式必须是r'\.
。谢谢,但我仍然不明白为什么它在df.code.str.replace(r“\A'(E?[V\d]\d\d)(\d*).*,r'\1.\2')
代码行,其中df是一个数据帧。@LegitStack:似乎df.code
对象引用了一个名为str
的对象,该对象有一个接受正则表达式的replace()
方法。由于Python字符串不支持这些语义,因此str
引用的对象不是Python字符串。@LegitStack-您在问题中正在处理的对象是Python字符串-注释中的示例是pandas dataframe类成员-请在这两个方面都尝试dir()
。@LegitStack:Whattype(df.code.str)
return?str
但是当我输入type(df)时,我得到pandas.core.series.series