Java正则表达式中 matcher.find()方法的理解

 今天在写程序的时候,碰到了一个怪事。

我想采集一个网址的链接,然后提取链接文字。为了完成这一步骤,我分两步走:

1、提前<a>和</a>之间的内容。如 从  "p id=km>&nbsp;<a href=http://hi.baidu.com>空间</a>&nbsp;|&nbsp;<a ";提取;<a href=http://hi.baidu.com>空间</a>

2、提取出"空间"两个字。

以下是我的代码。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegTest
{
    public static void main(String[] args)
    {
        
        
        String s="<p id=km>&nbsp;<a href=http://hi.baidu.com>空间</a>&nbsp;|&nbsp;<a ";
        String regex="<a.*?/a>";        
        //String regex = "<a.*>(.*)</a>";
        Pattern pt=Pattern.compi

时间: 2024-08-11 14:57:10

Java正则表达式中 matcher.find()方法的理解的相关文章

matcher-java正则表达式中Matcher的问题

问题描述 java正则表达式中Matcher的问题 用正则表达式写了个程序,用来判断输入字符中有多少个字母字符 int character=0; System.out.println("请输入任意字符串:"); Scanner scanner=new Scanner(System.in); String input=scanner.next(); Pattern p=Pattern.compile("[a-zA-Z]"); Matcher m=p.matcher(i

详解Java正则表达式中Pattern类和Matcher类_java

前言 本文将介绍Java正则表达式中的Pattern类与Matcher类.首先我们要清楚指定为字符串的正则表达式必须首先被编译为pattern类的实例.因此如何更好的了解这两个类,是编程人员必须知道的. 以下我们就分别来看看这两个类: 一.捕获组的概念 捕获组可以通过从左到右计算其开括号来编号,编号是从1 开始的.例如,在表达式 ((A)(B(C)))中,存在四个这样的组: 1 ((A)(B(C))) 2 (A) 3 (B(C)) 4 (C) 组零始终代表整个表达式. 以 (?) 开头的组是纯的

Java正则表达式中的捕获组的概念及相关API使用

要弄清这三个方法,首先要弄清Java正则表达式中的捕获组的概念.捕获组也就是Pattern中以括号对"()"分割出的子Pattern.至于为什么要用捕获组呢,主要是为了能找出在一次匹配中你更关心的部分.捕获组可以通过从左到右计算其开括号来编号.例如,在表达式 "(x)(y\\w*)(z)" 中,存在三个这样的组:  1.  x2.  y\\w*3.  z组零始终代表整个表达式.之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的输入序列的每个子序列.捕获的子序列

Java正则表达式提取字符的方法实例_正则表达式

正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐.于是想到用正则表达式来完成.项目需求是这样的:需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6 实现方法: import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s

Java正则表达式提取字符的方法实例

正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐.于是想到用正则表达式来完成.项目需求是这样的:需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6 实现方法: import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s

关于java多线程中的join方法

问题描述 关于java多线程中的join方法 1.主线程可能在子线程结束之前 结束吗?如果可能的话 举一个例子 2.如何理解join方法, 结合实际应用. 非常感谢非常感谢!!! 解决方案 关于join,参考:http://www.blogjava.net/jnbzwm/articles/330549.html 解决方案二: 主线程可能在子线程结束之前 结束吗 一般来说不可以,但是也不一定,如果子线程在执行finally中的代码,应该会等它执行完了才退出. 晕,join方法和什么"让主线程等子线

在JavaScript的正则表达式中使用exec()方法

         这篇文章主要介绍了在JavaScript的正则表达式中使用exec()方法,是JS入门学习中的基础知识,需要的朋友可以参考下              exec方法为正则表达式匹配的文本搜索字符串.如果找到匹配,则返回结果数组; 否则,返回null. 语法 ? 1 RegExpObject.exec( string ); 下面是参数的详细信息: string : 要搜索的字符串 返回值: 如果找到一个匹配,如果不为空,则返回匹配的文本. 例子: ? 1 2 3 4 5 6 7

关于Java Swing中的repaint()方法及setVisible()的问题

问题描述 关于Java Swing中的repaint()方法及setVisible()的问题 我写了一个JFrame, 加了一个JComponent,进行一些处理后使用removeAll()移除了JComponent中的所有组件,然后调用add(JPanel)添加了一个新的组件,最后调用repaint()方法显示这个JPanel 这时发现JPanel无法显示,但调整窗口大小后就能显示 因为调整窗口大小不是会自动调用repaint()方法吗?但是我自己调用了啊为什么不会显示嘞. 接下来, 我在re

Java类中域和方法设置中的常见错误

在Java程序中,类是其实现功能的核心.如果说开发Java应用程序,就是一个类的构建与使用的过程这一点都不为过.可惜的是,不少程序员在编写类的时候,还是会犯一些常规的错误.笔者就对此做一个总结,望各位读者能够引起重视. 一.基本数据类型的初始化问题. 在Java语言中,跟其他开发语言一样,都定义了一些基本的数据类型.程序员可以拿来直接使用,还可以用来构造其他一些复杂的应用程序.不过在Java中使用这些基本数据类型有些不同.在Java语言中,这个基本数据类型主要用在两个地方,分别为类中的成员或者局