C# NET中混合了多行和单行要求的正则表达式

C# NET中混合了多行和单行要求的正则表达式,c#,regex,C#,Regex,有人能帮我解决以下正则表达式问题吗: 我有一个字符串,如下所示(例如): 每个数字10表示一个带有名称、一个或多个参数和一个点的表达式。 每个表达式必须在单独的行中开始,并且可以在同一行或下一行中结束(点)。 现在我想正则化所有5个表达式,给我的名字和参数(参数可以组合成一个字符串)。我的问题是,我必须使用多行模式来选择每一行的开头,但是使用多行模式,如果点不在同一行中,我就找不到它 到目前为止,我的正则表达式是: ^\s*10 (\S*)(.*)\. 所以基本上我的问题是“(*)”不包括换行

有人能帮我解决以下正则表达式问题吗:

我有一个字符串,如下所示(例如):

每个数字10表示一个带有名称、一个或多个参数和一个点的表达式。 每个表达式必须在单独的行中开始,并且可以在同一行或下一行中结束(点)。 现在我想正则化所有5个表达式,给我的名字和参数(参数可以组合成一个字符串)。我的问题是,我必须使用多行模式来选择每一行的开头,但是使用多行模式,如果点不在同一行中,我就找不到它

到目前为止,我的正则表达式是:

^\s*10 (\S*)(.*)\.
所以基本上我的问题是“(*)”不包括换行符,因为我必须使用多行。所以我的结果缺少表达式3和4

有人能帮我吗? 提前谢谢


注:本网站使用.NET正则表达式引擎进行测试:

把这个坏小子推到前面

(?m)
这将匹配多行

所以你的正则表达式看起来像这样

(?m)^\s*10 (\S*)([^.]*)\.

如果我了解你链接的网站,这应该对你有用。
^\s*10\s*\s*\s*.

我相信这应该有用

^\s*10 (\S+)\s+(.*)\.

请确保您选择此选项。多行

它看起来非常接近您应该实现正确解析器的位置,而不是尝试使用独立正则表达式。这会将第一个ExpressionName作为第一个组,将字符串的所有其余部分作为第二个组。我每10根就需要一根火柴,如5根火柴。就这样!谢谢你!仅供参考:您可以省略“(?m)”。没有它,结果是一样的。[^.]成功了。很高兴为您服务!这将提供5个匹配项,但不分为名称和参数。也许我会用它自己把火柴串劈开。谢谢你。因为我不确定你想拍什么,所以我把它们忘了。我希望你能利用这个优势
^\s*10 (\S+)\s+(.*)\.