繁体   English   中英

Python 正则表达式匹配特定表达式

[英]Python Regex to match a specific expression

我有以下字符串:

  1. project_identifier = "CENTRAL PROPERTY DEVELOPMENTS JHB (PTY) LTD (1220681)"
  2. plan_project_name = "BLP416223852-CENTRAL PROPERTY DEVELOPMENTS JHB (PTY) LTD"
  3. acnac_Id = "BLP416223852"
  4. project_sw_id = "1232831" 我正在使用以下正则表达式来匹配 plan_project_name 字符串:pattern = rf"({acnac_Id}|{project_sw_id})(\s -\s )({project_name})" 连字符周围的空格是允许的。 我通过从右侧剥离 project_identifier 字符串来获取项目名称,如下所示: project_name = str((projectname.rsplit("(",1)[0]).rstrip())

然后 match = re.match(pattern,plan_project_name) 即使使用 re.search 方法我也找不到匹配项,我在哪里弄错了?请帮忙。

您缺少的部分是 project_name 中的括号。 您将不得不转义它们(以及所有可能看起来像正则表达式模式的东西。这段代码应该可以工作:

import re
project_identifier = "CENTRAL PROPERTY DEVELOPMENTS JHB (PTY) LTD (1220681)"
plan_project_name = "BLP416223852-CENTRAL PROPERTY DEVELOPMENTS JHB (PTY) LTD"
acnac_Id = "BLP416223852"
project_sw_id = "1232831" 
#I am using the following regex to match plan_project_name string: 
 
project_name = re.escape(str((project_identifier.rsplit("(",1)[0]).rstrip()))
print(project_name)

pattern = rf"({acnac_Id}|{project_sw_id})(\s*-\s*)({project_name})"
print(pattern)
match = re.match(pattern,plan_project_name)
print(match)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM