[英]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.