如何编写正则表达式模式以获得匹配的字符串

本文关键字:字符串 何编写 正则表达式 模式 | 更新日期: 2023-09-27 17:58:49

我正在为下面的字符串编写正则表达式模式。我使用下面的模式来获得匹配的字符串。但是,我弄错了。

注意:输入字符串可以是以下输入字符串中的任何一个。

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-}//不要考虑大括号。

如何编写正则表达式模式以获得匹配的字符串

您可以使用

^[A-Z]+-[0-9]+'s+-'s+(?:[0-9]+[.)]'s*)?[A-Za-z]+

查看regex演示

解释

  • ^-字符串的开头
  • [A-Z]+-1个或多个大写ASCII字母
  • --连字符
  • [0-9]+-1个或多个数字
  • 's+-1+空白
  • --连字符
  • 's+-见上文
  • (?:[0-9]+[.)]'s*)?-可选序列:
    • [0-9]+-1+位
    • [.)]-文字.)
    • 's*-0+空白
  • [A-Za-z]+-1个或多个ASCII字母