`

正则表达式疑问记录

阅读更多
如下字符串:
【</span><span style=\"FONT-FAMILY: &#39;宋体&#39;; LETTER-SPACING: 0pt; COLOR: rgb(0,0,0); FONT-SIZE: 10.5pt; mso-spacerun: &#39;yes&#39;\">药理学</span><span style=\"FONT-FAMILY: &#39;宋体&#39;; LETTER-SPACING: 0pt; COLOR: rgb(0,0,0); FONT-SIZE: 10.5pt; mso-spacerun: &#39;yes&#39;\">】

我想要的结果是:【药理学】

代码如下:
	public static String deleteBetweenByRegex(String str, String open,
			String close) {

		if (StringUtils.isNotBlank(open) && StringUtils.isNotBlank(close)
				&& StringUtils.isNotBlank(str)) {

			StringBuffer sb = new StringBuffer().append('(').append(open)
					.append(".+").append(close).append(')');

			String regex = sb.toString();
			
			System.out.println(regex);//输出结果:(<.+>)
			
			Pattern p = Pattern.compile(regex);

			Matcher m = p.matcher(str);

			int i = 0;

			while (m.find()) {
				str = StringUtils.remove(str, m.group(1));
				System.out.println(i++);
			}
		}

		return str;
	}


调用此方法返回结果却是:【】

此后我无意间加了一个问号'?',如下:
			StringBuffer sb = new StringBuffer().append('(').append(open)
					.append(".+?").append(close).append(')');

结果输出正常:【药理学】,虽然结果对了,但不明白为何加上'?'就可以了?!
分享到:
评论

相关推荐

    Javascript 字符串字节长度计算函数代码与效率分析(for VS 正则)

    最后,作者对使用正则表达式进行字符串处理提出了疑问,认为可能没有充分利用正则表达式的强大功能。文档中由于OCR扫描导致的个别文字识别错误或遗漏,文中已经进行了合理的通顺处理。 总结来说,本文详细阐述了...

    利用python分析access日志的方法

    4. 使用正则表达式逐行匹配日志,将匹配到的含有攻击行为的日志记录到单独文件中。 在实现代码部分,首先是检查命令行参数是否正确,如果不正确则打印使用方法并退出程序。如果输入正确,程序会使用os和re模块遍历...

    WEBCRAVKER

    这个过程可能涉及到HTTP请求、HTML解析、正则表达式、甚至是机器学习算法来识别和提取有用的数据。 【标签】"WEBCRAVKER" 进一步确认了这个主题是关于网络爬虫的。网络爬虫在许多场景下都有应用,例如搜索引擎的...

    Java毕业设计-[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu.rar

    3. **数据解析**:利用正则表达式或HTML解析库(如Jsoup)从网页中提取所需数据。 4. **存储处理**:支持将抓取到的数据存储到数据库、文件系统或第三方平台中。 5. **异常处理**:遇到异常情况时,能够自动重试或...

    易语言视频真实地址解析源码-易语言

    3. **正则表达式**:对于一些简单的隐藏格式,可以使用正则表达式进行匹配和提取。易语言提供了正则表达式的支持,用于从HTML文本中提取所需信息。 4. **JSON解析**:现代网页中,数据常以JSON格式存储在API请求的...

    danmaqua-telegrambot::anchor:一个Bot将翻译danmaku转发给Telegram聊天

    使用正则表达式过滤并区分说话人和内容 提供黑名单功能屏蔽指定用户的弹幕 提供计划任务功能定期切换弹幕房间、定期发送消息到对话 访问日志记录 通过 HTTP 代理连接 Telegram Bot API 提供 Docker 封装镜像如何使用...

    trace-context:跟踪上下文

    在test文件夹中可以找到基于正则表达式的简单实现。 此实现对测试套件具有100%的合规性。 .NET Framework将在即将发布的版本中提供跟踪上下文规范支持。 有关实现的详细信息,请参见。 可以在找到所有当前实现的...

    C#实现百分比转小数的方法

    使用正则表达式时,需要定义一个合适的模式(Pattern),它能够匹配包含数字的部分,而忽略任何百分号。正则表达式`@"/^(?[\d]{1,})(%?)$/"`用于捕获字符串中的数字部分,其中`?&lt;num&gt;`是一个命名捕获组,用于后续...

    基于Python的英语陆空通话语用特征分析.zip

    Python的模式匹配和规则引擎可以辅助这一过程,比如使用正则表达式找出特定的语用标记。 接下来,语用分析部分,Python可以用于计算各种统计指标,如命令的频率、确认回应的比例等,以揭示陆空通话的语用规律。此外...

    《python可以这样学》讲义,python自学笔记,WORD源码.zip

    此外,可能还会涉及一些进阶主题,如文件操作、正则表达式、网络编程、并发编程等。 自学笔记是学习过程中积累的重要资料,通常包含了作者对Python特性的理解和实践心得。这些笔记可能包含了一些实际编程案例,通过...

    PHP实例开发源码—育儿 php问答爬虫.zip

    3. **HTML解析**:可能涉及到DOM(Document Object Model)解析或者正则表达式,来提取网页中的问答信息。 4. **数据存储**:如何将抓取的数据存储到数据库中,例如MySQL或者NoSQL数据库如MongoDB。 5. **错误处理...

    上线换域名.zip

    使用`updateMany`方法和正则表达式可以实现批量替换: ```javascript db.collection.updateMany( { field: /旧域名/ }, { $set: { field: '$field'.replace(/旧域名/g, '新域名') } } ); ``` 2. **安全性与...

    questioninversionapp

    2. **正则表达式**:对于更复杂的问题结构,可能需要使用正则表达式来识别特定模式,如疑问词(如“为什么”、“如何”)或否定词,以便进行倒置操作。 3. **自然语言处理库**:Python有多个强大的NLP库,如NLTK...

    vue.js将时间戳转化为日期格式的实现代码

    函数的实现采用了正则表达式匹配和字符串替换的方式。首先,它检查传入的格式字符串是否包含年份格式化指令(如`yyyy`),如果存在,就会将四位年份格式化字符串插入到格式字符串中的正确位置。接下来,定义一个对象...

    数据结构与算法常见问题解答

    **:对于中英文混合的数据,可以通过正则表达式或其他文本处理方法来区分不同的字符集,以便进行相应的处理。 - **关于P320-P323散列表的一系列操作**:散列表的操作包括插入、查找、删除等,这些操作的设计需要考虑...

    Python比较配置文件的方法实例详解

    3. **清理数据**:通过正则表达式过滤掉注释行和空白行,并将剩余的有效行转换为键值对形式。 4. **比较新旧配置**:遍历新文件中的配置项,检查其是否存在于旧文件中。对于不存在的新配置项,将其记录下来。 5....

Global site tag (gtag.js) - Google Analytics