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)?!?)。 –