Skip to main content
 首页 » 编程设计

c#之正则表达式强制和可选组

2024年02月25日28TianFang

我想创建一个正则表达式,其中包含必须包含在字符串中的组和仅可选的组。为此,我正在使用 C#。

我的目标字符串是这样的

    ##my_first_string-2#E+1## 
    ##my_second_string-2#E-2## 
    ##my_third_string__## 

我有以下要求:

  • ## 首尾必填(但这不一定是行首或行尾)
  • ## 和#(或##)之间的字符串也是必需的
  • E+{Numbers} 或 E-{Numbers} 可选

到目前为止我想出了

(##.*?##) 

=> 匹配 2 ## ## 之间的所有字符

(##)([A-Za-z\-])\w+(##) 

=> 匹配第一个字符串。但出于某种原因,这会捕获 ##my_first_string-2 而不仅仅是 my_first_string-2

你能帮我根据我的要求创建一个正则表达式吗?

请您参考如下方法:

试试这个:

##([^#]+?)(#E[+-][0-9]+)?## 

重要的部分是:

(#E[+-][0-9]+)? 

“?”量词指定零次或一次出现

将以下内容替换为字符串的字符要求,目前它只是“除#之外的所有内容”

([^#]+?) 

希望这对您有所帮助。