【发布时间】:2016-12-01 17:08:27
【问题描述】:
正在努力为以下字符串编写正则表达式模式。我使用以下模式来获取匹配的字符串。但是,我得到了错误。
注意:输入字符串可以是以下输入字符串中的任何一个。
string input = "IN-7874 - hello";
// or "IN-7874 - Hello"
// "IN-7874 - 1) hello"
// "IN-7874 - 1. hello"
// "IN-7874 - 1)hello"
// "IN-7874 - 1.hello"
string pattern = @"^[A-Z]+\\-^[0-9]\s+\\-\\s+^[A-Z]"; //[any number of capital letters]hyphen[any number of numbers(0-9)]space[hyphen]space[numbers or strings]
var a = Regex.Match(input, pattern);
有人可以帮我解决这个问题吗?
我的输出应该是[任意数量的大写字母]连字符[任意数量的数字(0-9)]空格[连字符]空格
示例:{SAM-123 - }// 不考虑大括号。
【问题讨论】:
-
您的
inputvar 代码已损坏,如果这些是文字引号,请转义其中的引号。此外,您必须在模式的开头想要 1^,其他的应该被删除。试试^[A-Z]+-[0-9]+\s+-\s+[A-Za-z]+。或^[A-Z]+-[0-9]+\s+-\s+(?:\d+[.)]\s*)?[A-Za-z]+ -
@Wiktor Stribiżew。谢谢你。有效。将此标记为答案。
-
最后一个,对吧?
-
@Wiktor Stribiżew 是的。最后一个有效。