Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式包含额外字符_C#_Regex - Fatal编程技术网

C# 正则表达式包含额外字符

C# 正则表达式包含额外字符,c#,regex,C#,Regex,希望这是一个非常简单的问题,但我有以下数据字符串,请参见以下内容: *frac {7frac {1} {2} + 8} {frac {3} {4} +3} = 4 要返回以下内容吗 frac {1} {2} frac {3} {4} 但我得到的回报如下: 7frac {1} {2} {frac {3} {4} 到目前为止,我得到的表达是: [^\\*]frac\s{(.*?)}\s*{(.*?)} 如何删除额外的起始字符 干杯看起来您正试图使用[^\\*]排除潜

希望这是一个非常简单的问题,但我有以下数据字符串,请参见以下内容:

*frac {7frac {1} {2} + 8} {frac {3} {4} +3} = 4
要返回以下内容吗

frac {1} {2}
frac {3} {4}
但我得到的回报如下:

7frac {1} {2}    
{frac {3} {4}
到目前为止,我得到的表达是:

[^\\*]frac\s{(.*?)}\s*{(.*?)}
如何删除额外的起始字符


干杯

看起来您正试图使用
[^\\*]
排除潜在匹配前缀为“*”的匹配。它可以工作,但在匹配中包含前缀。您可以使用(
(?)来完成相同的任务,而无需在匹配中包含前缀

(?<![*\\])frac\s{(.*?)}\s*{(.*?)}

(?看起来您正试图使用
[^\\*]
排除可能匹配的前缀为“*”的匹配项。它可以工作,但在匹配项中包含前缀。您可以使用(
(?)完成相同的操作,而不必在匹配项中包含前缀

(?<![*\\])frac\s{(.*?)}\s*{(.*?)}

(?最简单的方法是不要在表达式的开头包含额外的位。您真的需要字符串的开头吗?我觉得它不像。所以只需使用:

frac\s{(.*)}\s*{(.*)}

最简单的方法是不要在表达式的开头包含额外的位。您真的需要字符串的开头吗?我觉得它不像。所以只需使用:
frac\s{(.*?}\s*{(.*?}

您只需删除第一个
[^\\*]
。表达式应仅为:

frac\s{(.*?)}\s*{(.*?)}

您只需删除第一个
[^\\*]
。表达式应仅为:

frac\s{(.*?)}\s*{(.*?)}

在压裂前移除匹配的内容?在压裂前移除匹配的内容?我相信
[^\\*]
是试图与第一个“压裂”不匹配。我相信
[^\\*]
是试图与第一个“压裂”不匹配。