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

定陶菏泽网站建设个人公益网站怎么制作

定陶菏泽网站建设,个人公益网站怎么制作,招商网站建设大概多少钱,asp网站开发的背景与环境译者#xff1a;Darren Luo1. 概述在本快速教程中#xff0c;我们将展示模式匹配引擎是如何工作的。我们还将介绍在 Java 中优化正则表达式的不同方式。有关正则表达式的的使用介绍#xff0c;请参阅此文。2. 模式匹配引擎java.util.regex 包使用了一种叫做 Nondeterministi…译者Darren Luo1. 概述在本快速教程中我们将展示模式匹配引擎是如何工作的。我们还将介绍在 Java 中优化正则表达式的不同方式。有关正则表达式的的使用介绍请参阅此文。2. 模式匹配引擎java.util.regex 包使用了一种叫做 Nondeterministic Finite Automaton(NFA)(不确定性有穷自动机)的模式匹配引擎。它被认为是不确定的是因为在对给定字符串尝试匹配正则表达式时输入的每个字符可能针对正则表达式的不同部分进行多次检查。在后台上面提到的引擎使用回溯。这种通用算法尝试用尽所有可能性知道它宣告失败。考虑下面的示例可以更好的理解 NFAtra(vel|ce|de)m在输入字符串“travel”时该引擎首先会查找“tra”并立即找到它。在这之后它将从第四个字符开始尝试匹配“vel”。这将匹配上所以她将继续并尝试匹配”m“。那将不能匹配因此它将回到第四个字符并搜索”ce“。这次将不再匹配所以它将再次回到第四个位置并尝试匹配”de“。这个字符串耶不能匹配因此它将返回输入字符串的第二个字符并尝试搜索另一个“tra”。最后一次失败时算法将返回失败。在上面的简单例子里在尝试将输入字符串和正则表达式匹配时引擎必须多次回溯。因此减少回溯次数时非常重要的。3. 优化正则表达式的方法3.1 避免重新编译Java 中的正则表达式被编译为内部数据接口。这个编译时一个耗时的过程。我们每次调用 String.matches(String regex) 方法时制定的正则表达式都会重新编译。if (input.matches(regexPattern)) {// do something}我们可以看到每次进行条件求值时正则表达式将被编译。要进行优化只能首先编译模式然后创建一个 Matcher 来查找值中的匹配Pattern pattern Pattern.compile(regexPattern);for(String value : values) {Matcher matcher pattern.matcher(value);if (matcher.matches()) {// do something}}上述优化的替代方案时使用相同的 Matcher 示例及其 reset() 方法Pattern pattern Pattern.compile(regexPattern);Matcher matcher pattern.matcher();for(String value : values) {matcher.reset(value);if (matcher.matches()) {// do something}}由于 Matcher 不是线程安全的情况我们必须谨慎使用这种变体。在多线程场景中可能存在危险。总而言之无论哪种情况我们都保证在任何时间点都只有一个 Matcher 用例可以用 reset 来重用它。对于这个例子重复使用预编译已经足够了。3.2. 使用替换(Alternation)正如上一节我们测试的那样替换使用不当可能会对性能产生影响。最重要的是将选项放置最可能发生的前方这样能更快的匹配。此外我们必须提取提取他们之间的共同模式。下面两个是不一样的(travel | trade | trace)对比tra(vel | de | ce)后一个更快因为 NFA 将尝试匹配“tra”如果没找到它则不会尝试任何替代方案。3.3. 捕获分组(Group)每次我们捕获分组时我们都会遭受一次小规模的惩罚。如果我们需要在分组里捕获文本我们应该考虑使用非捕获分组。请用“(?:M)”替代使用“(M)”。总结在这篇短文中我们简要回顾了 NFA 的工作原理。然后我们通过与扁我们的模式并重用 Matcher 来探索如何优化我们正则表达式的性能。最后我们指出我们在使用替换和分组的一些注意事项。和往常一样可以在 Github 上找到完整的源代码。http://www.spring4all.com/article/1479
http://www.zqtcl.cn/news/499653/

相关文章:

  • 有.net源码如何做网站湖南宣传片制作公司
  • dede网站模板怎么安装教程青岛需要做网站的公司
  • 静态双语企业网站后台源码北京网站关键词优化
  • 石家庄手机网站建设公司wordpress侧边栏显示子分类文字数
  • 公司网站客户案例个人做 网站2019
  • 个人网站怎么申请销售策划
  • 网站被黑 禁止js跳转企业为什么要建立集团
  • 建设网站的各种问题上海品牌女装排行榜前十名
  • seo优化搜索引擎网站优化推广网络关键词优化-乐之家网络科技商城网站备案能通过吗
  • 江门网站建设推广策划网站改版的宣传词
  • 网站建设三大部分国外购物平台网页界面设计
  • 公司商城网站建设方案wordpress旗舰
  • 京东云服务器怎么做网站企业宣传网站怎么做
  • 如何自学网站建设云南网爱我国防知识竞赛
  • 什么网站可以做投资设计接单
  • 网站内容批量替换桐乡网站制作
  • 怎么免费做网站教程制作xml网站地图文件
  • 广西智能网站建设哪家好网红商城
  • 关于建设网站的情况说明书wordpress 在线检测
  • 帝国cms 网站迁移错版怎样做心理咨询网站
  • 烟台建网站wordpress重写规则
  • 上海网站建设怎么赚钱平顶山网站建设服务公司
  • 导航网站如何被百度收录广告设计在线设计
  • 雪域什么网站是做电影的苏州优化方式
  • 设计网站多少钱手机百度助手
  • 驾校网上约车网站开发不会做网站如何做seo
  • 企业做推广可以发哪些网站宜兴埠网站建设
  • 网站后台文章添加成功 不显示公司设计网站建设合同
  • 后端开发需要掌握哪些知识潍坊优化公司
  • 专业手机网站制作哪家好wordpress wp-polls