【发布时间】:2018-11-01 10:47:29
【问题描述】:
正则表达式模式如何看起来像捕获 2 个定界符之间的子字符串,但不包括第一个定界符之后和最后一个定界符(如果有)之前的某些字符(如果有)? 例如,输入字符串如下所示:
var input = @"Not relevant {
#AddInfoStart Comment:String:=""This is a comment"";
AdditionalInfo:String:=""This is some additional info"" ;
# } also not relevant";
捕获应包含“{”和“}”之间的子字符串,但不包括在开始分隔符“{”之后的任何空格、换行符和“#AddInfoStart”字符串(只要它们存在),并且不包括任何空格, 换行符和 ";"和结束分隔符“}”之前的“#”字符(如果它们中的任何一个存在)。
捕获的字符串应该是这样的
Comment:String:=""This is a comment"";
AdditionalInfo:String:=""This is some additional info""
“:”和“:=”内部分隔符之前或之后可能有空格,并且“:=”之后的值并不总是标记为字符串,例如:
{ Val1 : Real := 1.7 }
对于数组,使用以下语法:
arr1 : ARRAY [1..5] OF INT := [2,5,44,555,11];
arr2 : ARRAY [1..3] OF REAL
【问题讨论】:
-
我看过你的编辑。是否所有数字都有
.作为小数分隔符?数字后面有空格吗?请编辑您的初始字符串并添加更多示例 -
字符串、实数等类型呢?有固定的类型列表吗?
-
基本上是整数、浮点数、字符串和布尔数据类型以及它们的数组,如此处所述link
标签: c# .net regex substring capture