我想用必须包含在字符串中的组和仅可选的组创建一个正则表达式。我正在为此使用c#。
我的目标字符串如下
##my_first_string-2#E+1##
##my_second_string-2#E-2##
##my_third_string__##
我有以下要求:
到目前为止,我已经想到了
(##.*?##)
=>匹配2 ## ##
之间的所有字符(##)([A-Za-z\-])\w+(##)
=>匹配第一个字符串。但是由于某种原因,它捕获了 ## my_first_string-2 而不是my_first_string-2
您能帮我为我的需求创建一个正则表达式吗?
答案 0 :(得分:3)
尝试一下:
##([^#]+?)(#E[+-][0-9]+)?##
重要的部分是:
(#E[+-][0-9]+)?
“?”量词指定零或一出现
将以下内容替换为字符串的字符要求,当前仅将“除#之外的所有字符”
([^#]+?)
希望这会有所帮助。