对字符串进行正则取子串

2023-11-18

题目是这样的:
对一段HTML网页内容,解析出其中所有的键值对,比如其中type=“text”,type为属性,text为值,二者为一个键值对
内容如下:<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" a="b" autocomplete="off">
拿到这个题,我们首先想到的是怎样遍历,怎样从头到尾的把所有子串取出来,还有如何消掉其中的符号。首先,遍历的方法想了好久,结果不大理想,代码如下,求改进:



	public static void main(String[] args) {

		String zifu = "<input type=\"text\" class=\"s_ipt\" name=\"wd\" id=\"kw\" maxlength=\"100\" a=\"b\" autocomplete=\"off\">";
		
		String zfsz[] = new String[10];
		int a = 0;
		for (int i = 0; i < zifu.length(); i++) {
			
			if (' '==zifu.charAt(i)) {
				
				for (int j = i+3; j < zifu.length(); j++) {
					if (' '==zifu.charAt(j)||'>'==zifu.charAt(j)) {
						zfsz[a] = zifu.substring(i+1, j);
						String temp = zfsz[a].replaceAll("\\W+"," ");
						System.out.println(temp);
						a++;
						break;
					}
				}
			}
			
		}
	}

想的很费劲,写的也很烧脑,最后搜索了一下关于正则表达式,发现String类中split方法就是用正则式对其拆分成数组的,具体参考相关API,这里就不说了。
修改后代码如下:

public static void main(String[] args) {
	String zifu = "<input type=\"text\" class=\"s_ipt\" name=\"wd\" id=\"kw\" maxlength=\"100\" a=\"b\" autocomplete=\"off\">";
	String regex0 = " ";
	//首先,我们以空格将字符串拆分成字符数组
	String[] result0 = zifu.split(regex0);
	//然后对所有字符数组中的非字母元素进行替换
	for (int i = 1; i < result0.length; i++) {
		regex0 = result0[i].replaceAll("\\W+", " ");
		System.out.println(regex0);
	}		
}

嗯,是不是看着简洁多了呢?有更好的方法,在下面可以评论,求指教。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对字符串进行正则取子串 的相关文章

  • 使用 objectGUID 进行查询 - Spring LDAP 模板

    我正在尝试获取 存储并依次使用 objectGUID 来查询 Active Directory 为了获取用户属性我正在使用以下 public static class MyDnKeyValueAttMapper implements Att
  • 如何获取枚举的子集

    大多数情况下 包含所有元素的枚举显示在用户界面的下拉列表中 我们只需要在用户界面中显示 5 个字段中的 2 个 通过某种方式利用可用于枚举的相同函数来获取此数据的更简单方法是什么 enum Color RED GREEN BLACK BLU
  • 如何将 .cer 证书导入 java 密钥库?

    在开发 Java Web 服务客户端期间 我遇到了一个问题 Web 服务的身份验证使用客户端证书 用户名和密码 我从网络服务背后的公司收到的客户端证书位于 cer格式 当我使用文本编辑器检查该文件时 它具有以下内容 BEGIN CERTIF
  • 在 MongoDB Java 驱动程序中如何使用 $filter

    我有一个适用于 MQL 的查询 我需要将其翻译成Java MQL 中的查询如下所示 db
  • java替代Thread.stop()来中断特定调用

    我正在寻找一种方法来告诉这个调用 大约需要 20 120 秒 final Area image final AffineTransform transform new AffineTransform transform scale imag
  • 如何将列表转换为地图?

    最近我和一位同事讨论了转换的最佳方式是什么List to Map在 Java 中 这样做是否有任何具体的好处 我想知道最佳的转换方法 如果有人可以指导我 我将非常感激 这是个好方法吗 List
  • 从 Bitmap 类创建 .bmp 图像文件

    我创建了一个使用套接字的应用程序 客户端在其中接收图像并将图像数据存储在 Bitmap 类中 谁能告诉我如何创建一个名为我的图像 png or 我的图像 bmp来自此 Bitmap 对象 String base64Code dataInpu
  • Java 9 中可以使用提前编译吗?

    As per JEP 295 http openjdk java net jeps 295 任何 JDK 模块 类或用户代码的 AOT 编译都是实验性的 JDK 9 中不支持 要使用 AOT 化的 java base 模块 用户必须编译该模
  • Java 反射:如何检索匿名内部类?

    我在另一个类中有一个匿名内部类 SomeClass Both SomeClass class getClasses and SomeClass class getDeclaredClasses 返回空数组 我在中找不到一些关于此的提示Cla
  • Java 套接字:可以从一个线程发送并在另一个线程上接收吗?

    这可能是一个非常基本的问题 但我很难找到答案 让一个线程写入 Socket 的输出流 而另一个线程从 Socket 的输入流读取数据 这样可以吗 编辑 这是一个与外部服务器通信的客户端应用程序 我并不是想让两个线程互相交谈 很抱歉含糊不清
  • 在java中是否可以使用反射创建没有无参数构造函数的“空白”类实例?

    我有一个没有默认构造函数的类 我需要一种方法来获取此类的 空白 实例 空白 意味着实例化后所有类字段都应具有默认值 如 null 0 等 我问这个问题是因为我需要能够序列化 反序列化大对象树 而且我无法访问该对象类的源 并且类既没有默认构造
  • Java 7 中 Object 和 int 的比较

    最近我偶然发现了一个问题 让我停下来思考 对我来说 下面的代码应该总是会触发错误 但是当我的一位同事问我为什么 Eclipse 没有显示错误时 我无法回答任何问题 class A public static void main String
  • 如何告诉 cxf 将包装类型保留在方法中?

    在我的 WSDL 中我有一个操作
  • 我可以关闭并重新打开套接字吗?

    我学习了一个使用套接字的例子 在此示例中 客户端向服务器发送请求以打开套接字 然后服务器 侦听特定端口 打开套接字 一切都很好 套接字从双方 客户端和服务器 打开 但我仍然不清楚这个东西有多灵活 例如 客户端是否可以关闭一个打开的 从两端
  • Microsoft JDBC 中的 JTDS 属性相当于什么?

    我正在将 JTDS 连接更改为 Microsoft JDBC 并且我看到存在于http jtds sourceforge net faq html http jtds sourceforge net faq htmlMicrosoft JD
  • Checkstyle - 方法按修饰符排序

    是否可以添加到 checkstyle 规则以按修饰符对类中的方法进行排序 我的意思是开头的公共方法和最后的私有方法 MethodsOrderCheck做这个工作 检查文档 https www qulice com qulice checks
  • 如何配置嵌入式 MongoDB 以在 Spring Boot 应用程序中进行集成测试?

    我有一个相当简单的 Spring Boot 应用程序 它公开一个小型 REST API 并从 MongoDB 实例检索数据 对 MongoDB 实例的查询通过基于 Spring Data 的存储库 下面的一些关键代码 Main applic
  • 如何修改生成的SOAP请求?

    我正处于创建输出拦截器并从 SOAP 消息中获取 OuputStream 的阶段 但是 如何在将 SOAP 信封发送到端点之前对其进行修改呢 我想删除一些 xml 元素 一种方法是获取文档并通过 XSLT 转换运行它 您可以通过调用来获取拦
  • Java,如何管理线程读取socket(websocket)?

    我有一个 WebSocket 服务器 我的服务器创建一个新线程来处理新连接 该线程一直处于活动状态 直到 websocket 中断 我的问题 对于 1 000 000 个连接 我需要 1 000 000 个线程 我如何通过一个线程处理多个
  • 使用 Hibernate 防止无限循环数据检索

    我想知道 想象一个场景 例如 POJO public class User private String userName private String name private String surname private List

随机推荐

  • UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence

    在做文本词频统计的时候遇到的问题 弄了1个小时也没找到解决方法 在偶然的一次试一试 居然成功解决了这个问题 一般情况下是这样是可以直接没问题的 出现问题时 一般情况下解决方式 网上绝大部分 但是出现这种情况 此时我们输入encoding 1
  • 用proxyee-down快速下载百度网盘大文件

    百度网盘下载大文件一直是一个痛点 现在国内基本上只有百度网盘可用了 但是免费用户使用百度网盘下载东西的速度一直不是很理想 所以现在有很多工具应运而生 今天要介绍的就是一个使用java编写的开源多线程下载器 利用它 我们就可以满速下载百度云文
  • bzoj3309 DZY Loves Math

    题目描述 bz 题解 线性筛 瞎jb反演得到 ans sum limits T 1 a lfloor frac a T rfloor lfloor frac b T rfloor sum limits d T f d mu frac T d
  • Java应用程序浏览器集成控件JxBrowser v7.18新版发布!

    JxBrowser是将基于Chromium的浏览器与Java应用程序集成 以处理和显示HTML5 CSS3 JavaScript Flash等 近日 JxBrowser v7 18发布啦 在此版本中 支持带有 Apple Silicon M
  • 分解质因数、求因子数和因子和(唯一分解定理)

    唯一分解定理 又称算术基本定理 可以描述为 任意一个大于1的正整数都能表示成若干个质数的乘积 且表示的方法是唯一的 换句话说 一个数能被唯一地分解成质因数的乘积 公式 因子数
  • 难懂?这样理解SPI与CAN很简单!

    难懂 这样理解SPI与CAN很简单 什么是串行通讯 为什么仍需使用串行通讯 SPI与CAN SPI 接口特点 CAN现场总线特点 什么是串行通讯 在正式进入主题前 我么先来介绍一下什么叫做 串行通信 串行通信是计算机的一种数据传输通信方式
  • Base64 编码整理

    前面整理了websocket的知识 其中有一个base64编码的小知识 今天就对这个小知识进行一下整理 1 Base64 Base64是一种基于64个可打印字符来表示二进制数据的表示方法 因为只有64种字符 使用6位就可表示过来 所以bas
  • 学习设计模式的一点心得

    我 是一个刚开始学习设计模式的小学生 开始学习设计模式是因为在之前的一家公司 做一个rpg游戏 但是我们又是小公司 没办法 很多都要我这个新手来做 连一些模块的架构都要做 但是能力在那里 工作越做越乱 对于一个没接触过设计模式的人来说 根本
  • Kafka剖析(一):Kafka背景及架构介绍

    转载自 http www infoq com cn articles kafka analysis part 1 Kafka 是由 LinkedIn 开发的一个分布式的消息系统 使用 Scala 编写 它以可水平扩展和高吞吐率而被广泛使用
  • 计网第四章(网络层)(三)(定长掩码和变长掩码)

    IPV4地址的应用规划 定长的子网掩码FLSM 使用同一个子网掩码划分子网 每个子网所分配的IP地址数量相同 造成IP地址的浪费 变长的子网掩码VLSM 使用不同的子网掩码划分子网 每个子网所分配的IP地址数量可以不相同 尽可能地减少对IP
  • 巨人互动

    Facebook是全球最大的社交媒体平台之一 每天有数十亿的用户在其上发布 分享和交流各种内容 为了维护平台的安全性和用户体验 Facebook制定了严格的风控规则来监测和处理违规行为 下面小编讲讲Facebook风控规则 巨人互动 Goo
  • Graphviz 安装教程

    下载安装 windows版本下载地址 http www graphviz org Download windows php 选择需要的版本就行了 安装时勾选下面方框中的选项 将路径添加到系统路径中 这一步不选的话就需要人为添加路径 配置环境
  • CSS实现渐变色边框(Gradient borders)的5种方法

    1 使用border image CSS 提供了 border image 属性用于给 border 绘制复杂图样 与 background image 类似 我们可以在 border 中展示image和linear gradient 通过
  • c++STL常用容器之Queue容器——全面总结(附案例解析)(十五)

    这里有C STL 全面总结详细教程 附案例解析 持续更新中 目录 queue 容器 queue 基本概念 queue 常用接口
  • php 访问 HTTP 网址

    1 只需获取状态码 判断网址是否正常打开 url https www baidu com array get headers url 1 print r array 判断是否正常打开 url https www baidu com arra
  • SpringBoot项目整合JPA+QueryDSL,及apt-maven-plugin报错问题解决

    闲暇之余项搞个JPA的Demo 采用的是SpringBoot JPA QueryDSL 开发工具为Eclipse JPA官网 https spring io projects spring data jpa QueryDSL官网 http
  • Specified class is an interface

    错误 在springboot 启动时候出现该错误 表示有重复的mapper 而且两个mapper 都加了 Mapper注解 或者在mybatis的配置文件中配置了 所以会导致 混乱 解决方法 根据报错提示找到多余的mapper 进行统一化处
  • Jedis之Java操作redis实现模拟验证码发送操作

    import cn hutool core util RandomUtil import redis clients jedis Jedis import java util Scanner author oliverloki Descri
  • keil找不到device,怎么办?

    下载好的keil 准备调试程序 却发现这个问题 找不到我需要的芯片啊啊啊 头大 后面发现是缺少相应的pack 安装keil时 好像没有自动装上STM32系列芯片 所以得需要自己安装 百度一下 找一些资源 然后 把途中红色框住的 分别放在安装
  • 对字符串进行正则取子串

    题目是这样的 对一段HTML网页内容 解析出其中所有的键值对 比如其中type text type为属性 text为值 二者为一个键值对 内容如下