2017-09-13 63 views
-2

它匹配\ r \ n之間的所有內容。我只想匹配\ r \ n之間的數字並替換爲「」。正則表達式匹配回車和換行內的數字

regex: [^\r\n\d$\r\n] 
Matching: 
    abc\r\n123\r\nabc\r\n 
Doesnot match: 
    \r\n\r\n 
    \r\nasaas\r\n 

正則表達式說,以上所有匹配。 這對刪除從套接字接收到的數據包數據中的塊長度非常有用。我想刪除分塊數據包中的數據包長度並準備一個合適的XML。

+1

您應該直接在您的問題中包含所有相關信息。鏈接應該是補充的。 – chris

+0

既然你只有一個數字 - 它根本不應該匹配 –

+1

如果你正在實現分塊傳輸模式,你應該真的在使用一個已經爲你實現的庫,比如'HttpURLConnection',Apache HTTP客戶端等。 – EJP

回答

-3

從純粹的正則表達式的角度來看自己孤立於行號:我想你想要這樣的:

(\n\d+\n)|(^\d+\n)|(\n\d+$) 

作爲C++字符串:"(\\n\\d+\\n)|(^\\d+\\n)|(\\n\\d+$)"或者乾脆R"((\n\d+\n)|(^\d+\n)|(\n\d+$))"

更新。正如其他人所指出的,正則表達式可能不是解析HTTP流最合適的工具。但從正則表達式看,我會支持這個答案。

+2

等一下。正則表達式庫是否無條件地將行結束符處理爲特殊的?理由#42953遠離正則表達式(FWIW,[我不認爲這是真的](http://coliru.stacked-crooked.com/a/7088761318d3d9fb)) – sehe

+0

是'^ \ d'甚至沒有' []'? – wilx