我是一个新手,不太懂正则表达式。
我想要进行多行搜索。以下是我想要实现的示例:
假设我有以下文本:
*Project #1: CVC – Customer Value Creation (2007年9月至今) Time Warner Cable是世界领先的媒体和娱乐公司,Time Warner Cable (TWC)使同轴电缆颤动。 客户:美国时代华纳有线电视公司。 ETL工具:Informatica 7.1.4 数据库:Oracle 9i。 角色:ETL开发人员/团队负责人。 操作系统:UNIX。 职责: 创建测试计划和测试用例书。 对团队成员的映射进行同行评审。 记录映射。 领导开发团队。 向现场发送报告。 修复与缺陷、数据和性能相关的错误。 项目2: MYER – 销售分析系统(2005年11月至今) Coles Myer是澳大利亚最大的零售商之一,在澳大利亚拥有超过2,000家门店, 客户:Coles Myer Retail,澳大利亚。 ETL工具:Informatica 7.1.3 数据库:Oracle 8i。 角色:ETL开发人员。 操作系统:UNIX。 职责: 使用Informatica提取、转换和加载数据。 了解整个源系统。 创建并运行会话和工作流。 使用Syncsort应用程序创建排序文件。*
我想编写一个正则表达式,首先尝试匹配单词"Project",该单词可以是小写或大写。
如果匹配了"project",则正则表达式应尝试匹配客户、角色、环境中的任何一个。
如果正则表达式匹配到这些中的任何一个,则匹配完成。(客户、角色、环境这些词可能大小写不同,也可能与“project”不在同一行)
我已经为上述任务编写了一个正则表达式,如下所示:
我想要进行多行搜索。以下是我想要实现的示例:
假设我有以下文本:
*Project #1: CVC – Customer Value Creation (2007年9月至今) Time Warner Cable是世界领先的媒体和娱乐公司,Time Warner Cable (TWC)使同轴电缆颤动。 客户:美国时代华纳有线电视公司。 ETL工具:Informatica 7.1.4 数据库:Oracle 9i。 角色:ETL开发人员/团队负责人。 操作系统:UNIX。 职责: 创建测试计划和测试用例书。 对团队成员的映射进行同行评审。 记录映射。 领导开发团队。 向现场发送报告。 修复与缺陷、数据和性能相关的错误。 项目2: MYER – 销售分析系统(2005年11月至今) Coles Myer是澳大利亚最大的零售商之一,在澳大利亚拥有超过2,000家门店, 客户:Coles Myer Retail,澳大利亚。 ETL工具:Informatica 7.1.3 数据库:Oracle 8i。 角色:ETL开发人员。 操作系统:UNIX。 职责: 使用Informatica提取、转换和加载数据。 了解整个源系统。 创建并运行会话和工作流。 使用Syncsort应用程序创建排序文件。*
我想编写一个正则表达式,首先尝试匹配单词"Project",该单词可以是小写或大写。
如果匹配了"project",则正则表达式应尝试匹配客户、角色、环境中的任何一个。
如果正则表达式匹配到这些中的任何一个,则匹配完成。(客户、角色、环境这些词可能大小写不同,也可能与“project”不在同一行)
我已经为上述任务编写了一个正则表达式,如下所示:
^((P|p)roject.*\s*.*((((E|e)nviornment)|((P|p)latform)|((R|r)ole(s)?)|((R|r)esponsibilit(y|ies))|((C|c)lient)|((C|c)ustomer)|((P|p)eriod)))
这个正则表达式可以匹配项目#1,但无法匹配项目#2。
请问有人能告诉我这个正则表达式哪里出了问题,或者如何编写适用于这种文本的正则表达式吗?