一个正则表达式的问题。

shengjie 2006-11-04 04:55:54
String form="asdfasdf<FORM><tt>bbb</tt><aa>bbbbbb</aa></FORM>asdasdf<FORM><TT>AASF</TT><DD>AA</DD></FORM></INF_PUNISH>";
String tt="";
Matcher m = Pattern.compile("(\\w)<FORM>(.*)</FORM>(\\w)").matcher(form.toUpperCase());
//Matcher m = Pattern.compile("(?:<form>)((\\n|\r|.)*?)(?:</form>)").matcher(form.toLowerCase());
while(m.find())
{
System.out.println(m.group(2));
}
System.out.println(tt);

我想得到<form></form>标签中的字符串。可是我写的这个只能得到最有一个。请大家帮忙看看错在什么地方。

我需要返回的字符串应该是“<tt>bbb</tt><aa>bbbbbb</aa>”和“<TT>AASF</TT><DD>AA</DD>”。
...全文
170 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
边城狂人 2006-11-04
  • 打赏
  • 举报
回复
注意,改了这几个地方:
1. compile的时候给一个Pattern.CASE_INSENSITIVE,就可以不区分大小写。
2. \\w只代表一个[a-zA-Z0-9]的字母,如果加*表示0个或者多个
3. .*?表示非贪心的匹配,不然就会把中间的</FORM>和<FORM>也配置进去。
边城狂人 2006-11-04
  • 打赏
  • 举报
回复
import java.util.regex.*;

public class Test {

public static void main(String[] args) {
String form="asdfasdf<FORM><tt>bbb</tt><aa>bbbbbb</aa></FORM>asdasdf<FORM><TT>AASF</TT><DD>AA</DD></FORM></INF_PUNISH>";
String tt="";
Matcher m = Pattern.compile("(\\w)*<FORM>(.*?)</FORM>(\\w)*", Pattern.CASE_INSENSITIVE).matcher(form);
//Matcher m = Pattern.compile("(?:<form>)((\\n|\r|.)*?)(?:</form>)").matcher(form.toLowerCase());
while (m.find()) {
System.out.println(m.group(2));
}
System.out.println(tt);
}
}
内容概要:本文研究了计及需求侧响应的日前、日内两阶段鲁棒备用优化问题,提出了一种基于数据驱动的两阶段分布鲁棒优化方法,结合1-范数和∞-范数构造不确定性集合,有效刻画风电、光伏出力及负荷等多重不确定因素的波动特性。研究构建了电热综合能源系统的联合优化模型,通过协调日前调度计划与日内实时调整,充分发挥需求侧响应资源的灵活调节能力,提升系统在不确定性环境下的备用充裕性与运行鲁棒性,并采用Matlab进行建模与仿真验证,结果表明该方法在保障系统安全的同时显著改善了经济性。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员,以及从事新型电力系统调度、综合能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于高比例可再生能源接入背景下电力系统备用容量的优化配置;②为综合能源系统在多重不确定性下的鲁棒调度提供决策支持;③支撑需求侧资源参与系统辅助服务的机制设计与仿真验证,推动源荷互动协调发展。; 阅读建议:建议读者结合Matlab代码深入理解两阶段鲁棒优化的建模过程,重点关注不确定性集构建、鲁棒约束转化及C&CG等求解算法的实现细节,可进一步拓展至其他分布鲁棒优化形式或耦合更多能源形式的综合能源系统场景。

81,108

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧