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