当前位置: 首页 > news >正文

网站会说话12333公共招聘网

网站会说话,12333公共招聘网,安徽六安发现一例新冠阳性检测者,庐江网站制作公司项目场景: 获取到http请求的参数,已经被字符串接收了,需求是需要从字符串中解析出来。 一种情况是:Content-Disposition: form-data; name"userCode" 另一种是:key1value1&key2value2&key3value3…

项目场景:

获取到http请求的参数,已经被字符串接收了,需求是需要从字符串中解析出来。

一种情况是:Content-Disposition: form-data; name="userCode"

另一种是:key1=value1&key2=value2&key3=value3,&拼接的键值对


解析参数

一、解析Content-Disposition: form-data;

需要解析的字符串

--38e67491-2794-4b83-a1d2-e2667bce6501
Content-Disposition: form-data; name="endDate"
Content-Length: 192024-07-02 00:02:26
--38e67491-2794-4b83-a1d2-e2667bce6501
Content-Disposition: form-data; name="type"
Content-Length: 4xqqk
--38e67491-2794-4b83-a1d2-e2667bce6501--

 示例:

public class TestService {public static void main(String[] args) {String requestParamStr = "--38e67491-2794-4b83-a1d2-e2667bce6501\n"+"Content-Disposition: form-data; name=\"endDate\""+"\nContent-Length: 19"+"\n\n"+"2024-07-02 00:02:26"+"\n--38e67491-2794-4b83-a1d2-e2667bce6501\n"+"Content-Disposition: form-data; name=\"type\""+"\nContent-Length: 4"+"\n\n"+"xqqk\n"+"--38e67491-2794-4b83-a1d2-e2667bce6501--";if(requestParamStr.startsWith("--") && requestParamStr.contains("Content-Length")){String[] param =  requestParamStr.split("--[a-zA-Z0-9]+\\-");for(String keyvalue:param){if(keyvalue.contains("Content-Disposition")){String key = parseKey(keyvalue);String value = parseValue(keyvalue);System.out.println("key:"+key+",value:"+value);}}}}/*** 正则表达式匹配name参数*/private static String parseKey(String contentDisposition) {String pattern = ".*name=\"([^\"]+)\".*";java.util.regex.Pattern r = java.util.regex.Pattern.compile(pattern);java.util.regex.Matcher m = r.matcher(contentDisposition);if (m.find()) {return m.group(1);}return null;}/*** 正则表达式匹配value参数*/private static String parseValue(String contentDisposition) {String pattern = "\\n\\s*\\n([^\\n]+)";java.util.regex.Pattern r = java.util.regex.Pattern.compile(pattern);java.util.regex.Matcher m = r.matcher(contentDisposition);if (m.find()) {return m.group(1).replaceAll("\r", "").replaceAll("\n", "");}return null;}
}

正则表达式"\\n\\s*\\n([^\\n]+)"的含义是:

\\n\\s*\\n:匹配一个空行,即两个连续的换行符,中间可以有任意空白字符。

([^\\n]+):匹配空行之后的非换行符字符序列,并将其捕获在一个组中。

请注意,这个解决方案假设“空行”是由两个连续的换行符定义的,并且在文本中不会有额外的空白行。如果文本中可能有多个空行,或者空行前后有额外的空白字符,您可能需要调整正则表达式以适应这些情况。

 

输出:

key:endDate,value:2024-07-02 00:02:26
key:type,value:xqqk

 


 二、解析&拼接的键值对

需要解析的字符串

key1=value1&key2=&key3=value3

 示例:

public class TestService {public static void main(String[] args) {String input1 = "key1=value1&key2=&key3=value3";String input2 = "key1=value1&key2=value2&key3=value3";String input3 = "key1=&key2=&key3=";String input4 = "key1=value1&key2=value2&key3"; // 不符合规则,因为键值对中缺少 '='String input5 = "key1=value1&key2=value2&key3=&value4"; // 不符合规则,因为 'value4' 不是一个有效的键值对System.out.println(isValidKeyValuePairs(input1)); // 输出: trueSystem.out.println(isValidKeyValuePairs(input2)); // 输出: trueSystem.out.println(isValidKeyValuePairs(input3)); // 输出: trueSystem.out.println(isValidKeyValuePairs(input4)); // 输出: falseSystem.out.println(isValidKeyValuePairs(input5)); // 输出: falseboolean isCorrect = isValidKeyValuePairs(input1);if(isCorrect){String[] param =  input1.split("&");for(String keyvalue:param){String[] pair = keyvalue.split("=",2);if(pair.length==2){System.out.println("key:"+pair[0]+",value:"+pair[1]);}}}}/*** 匹配键值对,键和值可以包含除了 & 以外的任何字符* 值可以为空,键和值之间通过 = 连接,键值对之间通过 & 连接*/private static boolean isValidKeyValuePairs(String input) {// 例如: key=value&key2=value2String pattern = "([^&=&]+=[^&=&]*)(&([^&=&]+=[^&=&]*))*";return input.matches(pattern);}}

 

这个正则表达式解释如下:

([^&=&]+) 匹配不包含'&', '=', 或者 '&' 的一个或多个字符,这代表键。

= 字面匹配。

[^&=&]* 匹配零个或多个不包含 '&', '=', 或者 '&' 的字符,这代表值。

(&([^&=&]+=[^&=&]*))* 匹配零个或多个以 '&' 开始,后面跟着键值对的子串。

输出:

true
true
true
false
false
key:key1,value:value1
key:key2,value:
key:key3,value:value3

http://www.yayakq.cn/news/998734/

相关文章:

  • 网站设计建议wordpress文章末尾
  • 深圳专业医疗网站建设it运维服务管理体系
  • 网站建设方案计划书如何做考试网站
  • 网站悬浮图标怎么做详情页通用模板
  • nas怎么做自己的网站专门做字体设计的网站
  • 吴江企业建设网站1688货源网一件代销
  • 电商网站开发的意义烟台海阳市专业做网站
  • 网站建设需求统计表网站开发嫌工时长
  • 上饶婚纱工作室网站建设最全的提交网站入口大全
  • wex5做网站校园网站安全建设方案
  • 嘉兴做网站建设的公司哪家好0元玩手游平台
  • 网站产品介绍长图哪个软件做的西安seo外包服务
  • 美工做任务网站长春百度搜索优化
  • 江阴网站开发公司微商分销模式
  • 陕西建设集团招聘信息网站学校网站建设方案模板
  • 电商网站建设的关键曲阜住房和城乡建设局网站
  • 电影网站做淘客wordpress怎么设置标签分类
  • php网站开发文档seo挂机赚钱
  • 做品牌形象网站手机网站样式
  • 备案期间网站能打开吗深圳住房和城乡建设厅官网
  • 烟台快速建站有哪些公司重庆竣工验收备案网上查询
  • 怎么开网站平台挣钱深圳市宝安区建设局网站
  • 加强统计局网站的建设和管理排版设计工作内容
  • 注册网站需要备案吗招聘类网站怎么做
  • 潍坊网站定制建设品牌网站
  • 高端网站建设推荐万维科技网站制作开发的步骤和方法
  • 高端建站是什么意思东莞网站制作多少钱
  • 商丘网站建设方案网站建设的实施制作阶段包括
  • 重庆工程交易信息网好的seo公司营销网
  • 百度公司官方网站产品营销网站建设