繁体   English   中英

这个正则表达式有什么问题?

[英]What is wrong with this regular expression?

我创建了一个正则表达式,该表达式应该与以Project开头的行匹配,后跟#或:或-后跟1至3位数字或标题。 例如,以下几行应匹配

项目1

项目#1

项目1

项目-123

项目名称


但是以下内容不匹配

ABCD项目

项目* 978

我的项目

处理的项目


我的正则表达式如下:

^(\s)*?((Project( )*?(#|:|-| )( )*?(\d){1,3})|(PROJECT( )*?(#|:|-| )( )*?(\d){1,3})|Project Title|PROJECT TITLE)\b

Project关键字应位于该行的开头。

对于某些文本,此正则表达式可以正常工作。 但是此正则表达式与以下行匹配:

处理的项目:

我不知道为什么会这样。 有人可以找出我的正则表达式有什么问题吗?

我正在使用C#来做到这一点。

提前致谢 !!!

这样的模式怎么样?

@"Project\s*[#: -]\s*(?:\d+|[A-Z][a-z]+)"

它不符合

ABCD项目

项目* 978

我的项目

处理的项目

但将匹配以下模式

Project # 1

Project#1

Project :1

Project-123

Project Title

但是,“ 项目名称”“ ABCD 项目”中有一个混乱的部分。 我以为你只想要标题大小写。

这对我有用:

Regex project = new Regex(@"^\s*?(?:Project *[#:\- ] *(\d){1,3}|Project Title)",
    RegexOptions.ECMAScript | RegexOptions.IgnoreCase | RegexOptions.Multiline);
^\s*Project\s*([\-#:]\s*\d{1,3}|Title)\b

这样可以在Project之前和之后以及-#:和三位数之间保留可选空格

暂无
暂无

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

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