如何根据前3个字符匹配返回完整字符串?



我有一个目录(client_dir),其中的文件夹名为" XXX -长客户端名称";

我想保存文件夹的全名("XXX -客户端长名")作为一个变量client_name。我可以搜索"XXX -长客户名"。通过匹配前3个字符(XXX),我在其他地方得到这3个字符。

我试着使用重模块,但我不知道如何得到实际的完整字符串。它只返回"XXX"

for closeout in os.listdir(closeout_dir):
project_id = closeout[:8]
client = project_id[0:3] 
for x in os.listdir(client_dir):
client_name = re.search(client,x)
print(client_name)
print(type(client_name))

输出:

<re.Match object; span=(0, 3), match='XXX'>
<class 're.Match'>
XXX

我遇到的另一个问题是,当我添加另一个文件夹到client_dir名为"YYY-另一个客户端名称"它找不到我的"XXX"-长客户名。文件夹了。输出为:

None
<class 'NoneType'>
for closeout in os.listdir(closeout_dir):
project_id = closeout[:8]
client = project_id[0:3]
for x in os.listdir(client_dir):
client_name = re.search(client,x)
print(x)                # Actual full string
print(client_name)
print(type(client_name))
  1. 查看我的代码,x是实际的完整字符串,不需要在re.search中返回它。
  2. 您需要缩进print语句以在for循环中运行它。如果你不缩进,你将只打印for循环的最后一个值。

最新更新