1
首次发布,请原谅格式。不是真正的程序员,我使用Revit和AutoCAD APi工作在C#中。需要注意的是,由于Revit API有点乱,所以相同的代码可能会在不同的API中产生不同的结果。所以我有三种基本的字符串模式,我想根据它们的前缀&后缀返回某些数字。它们可能被我所显示的其他文字所包围,并且字符串中的实际数字和位置可能会有所不同。正则表达式匹配某些条件中的数字
字符串1:(12)#4x2'-0 @ 6 EF
字符串2:(12)#4 @ 6 EF
字符串3:错列2'- 0,SPCG AT 6 AT 12 SLAB
代码我使用:
if (LengthAsString.IsMatch(remarkdata) == true)
{
Regex remarklength = new Regex(@"isnertRegexPatternhere");
if (remarklength.IsMatch(remarkdata))
{
remarkdata = remarklength.Replace(remarkdata, "${0}\u0022");
}
}
remarkdata是上面的字符串,并且在每次匹配后添加英寸标记。
的模式香港专业教育学院测试,他们的回报:
String 1 String 2 String 3
\d+(?!['-]|([(\d+)])) 0,6 4,6 0,6,12
(?<![#])\d+ 12,2,0,6 12,6 2,9,6,12
\d+(?= @)|(?<[email protected])\d+ 0,6 6 no matches
expected results: 0,6 6 0,6,12
这样的IM接近,但没有雪茄。思考?
Double Edit:寻找前面没有#的数字,也没有()之间的数字。忽略@和x,他们可能会或可能不会在那里。
你的要求是不明确的。请以口头方式制定。编辑了 –
。我认为这清除了? – Cereston
起初我带着'\ d +: - |',但你的编辑没有明确出来(<#?!)(*([“] [#X] \ d)?!?)。 –