如何在Python中使用regex检查整个列的字符串格式



我的帐户名称看起来像GH85036, LG95639等在一个列中。我想检查整个列的格式,这样我就可以编辑那些不遵循格式的列。这是我第一次使用正则表达式。

到目前为止我已经得到

for i in Reports['Account Name']:

match = re.findall(r'[A-Z]{2}[0-9][0-9][0-9][0-9][0-9]', Reports['Account Name']) is None

我得到的错误信息:

<ipython-input-77-86f17b9d34ff> in <module>()
1 for i in Reports['Account Name']:
----> 2     match = re.findall(r'[A-Z]{2}[0-9][0-9][0-9][0-9][0-9]', Reports['Account Name']) is None
C:Program FilesAnaconda3libre.py in findall(pattern, string, flags)
221 
222     Empty matches are included in the result."""
--> 223     return _compile(pattern, flags).findall(string)
224 
225 def finditer(pattern, string, flags=0):
TypeError: expected string or bytes-like object

假设正确/可接受的帐号是两个大写字母后跟5位数字,我们可以在整个列上使用str.contains来标记任何不匹配的值:

Reports[~Reports["Account Name"].str.contains(r'^[A-Z]{2}[0-9]{5}$', regex=True)]

最新更新