在基于网络的应用程序中从传入请求返回字符串值时,我有一个这样的字符串
'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
答案 0 :(得分:1)
使用正则表达式替换它,如下所示:
Name
这会将MyClass
与MyClass
之后的所有内容替换为
注意:根据cfqueryparam的评论,您可能希望使用这样的正则表达式来涵盖content = content.replaceAll("Host:\\s*(\\w)*\\.\\w*", "Host: newhost.com")
等等:
Host: