簡體   English   中英

使用正則表達式查找字符串中的字符並替換

[英]Using regex to find chars in a string and replace

從基於網絡的應用程序中的傳入請求返回字符串值時,我有這樣的字符串'post http://a.com\\r\\nHost: a.com\\r\\n'

問題是主機總是在變化,因此我需要用定義的主機替換它。 為了實現這一點,我嘗試使用正則表達式,但是在嘗試在字符串中查找'host:a.com'字符並將其替換為定義的值時遇到了麻煩。

我嘗試使用此示例www.javamex.com/tutorials/regular_expressions/search_replace_loop.shtml#.VUWvt541jqB將模式編譯更改為: ([\\\\d]+)但仍保持不變。

我的目標是使用定義的值替換字符串中的給定字符,並使用定義的值返回新字符串。 有指針嗎?

編輯 :典型的傳入請求的示例: Post http://example.com\\r\\nHost: example.com\\r\\nConnection: close\\r\\n

另一個傳入請求可能采用以下形式: GET http://example2.net\\r\\nContent-Length: 2\\r\\nConnection: close\\r\\nHost: example2.net\\r\\n

我想將其替換為以下形式Post http://example.com\\r\\nHost: mycustomhostvalue.com\\r\\nConnection: close\\r\\n

GET http://example2.net\\r\\nContent-Length: 2\\r\\nConnection: close\\r\\nHost: mycustomhostvalue.com\\r\\n

使用正則表達式替換它,如下所示:

content = content.replaceAll("Host:\\s*(\\w)*\\.\\w*", "Host: newhost.com")

這將用newHost.com替換Host:之后的newHost.com

注意:根據cfqueryparam的評論,您可能需要使用這樣的正則表達式來覆蓋.co.uk ,例如:

Host:\\s*.*?(?=\\\\r\\\\n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM