我想创建一个正则表达式,其中包含必须包含在字符串中的组和仅可选的组。为此,我正在使用 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]+)?
“?”量词指定零次或一次出现
将以下内容替换为字符串的字符要求,目前它只是“除#之外的所有内容”
([^#]+?)
希望这对您有所帮助。
