首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

策略模式:网络小说的固定套路

策略模式:网络小说的固定套路 本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 近日小舅子让我推荐几本好看的玄幻小说,下好了发给他。...铁打的小说流水的读者,导致了当前网络小说的固定套路,作家只要把故事梗概提取出来,把主角名字、背景什么的一换,就又是一本新书。唉,竟无语凝噎。 这种情况用代码怎么实现呢,我们来试试。.../捡到神器 以弱胜强,暂露光芒 开挂似的升级超快 组团刷怪九死一生(主角怎么也死不了) 功成名就 + 妻妾成群 /** * 网络玄幻小说的故事梗概接口 * 固定的一些套路 * Created by...其实这就是传说中的 策略模式。 策略模式 Strategy 策略模式封装了变化。 策略模式又叫算法簇模式。它定义了一系列的算法用来完成相同的工作。策略模式让算法独立于使用它的客户而独立变化。...– 大话设计模式 只要遇到很多 if-else 或者有很多 case 的 switch,就可以考虑使用策略模式了,将这些行为独立的封装起来,可以在公共类中消除条件语句。

35830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    固定资产管理模式的演变历程

    固定资产作为企业资产日常运营和生产的重要组成要素,在企业日常运行中发挥了重要的作用。固定资产通常具有 价值高、存放地点分散、种类复杂、人员流动大等特点。...因此,加强固定资产的管理,提升实物资产的管理效率,也有助于降低企业的成本,提高整体的效益。 随着科技的发展,固定资产的管理模式也经过了几个演变历程: 最原始的固定资产管理方式:人工表格记账。...而且,这种方式无法精确记录资产的全生命周期,比如采购、借用、申领、退库等记录无法追溯,从而导致固定资产流失和闲置率高、重复采购等后果。简言之,这种模式管理固定资产的痛点数不胜数。...QQ截图20220513104238.jpg 改良版的固定资产管理方式:单机版的固定资产管理系统。...随着计算机的发展,有一些单机版的固定资产管理系统应运而生,人们开始使用单机版系统记录固定资产的信息,盘点的时候也可以使用条形码了,极大提升工作效率。

    29720

    Python正则表达式中的贪心模式和非贪心模式

    分割线======== 正则表达式并不是Python独有的,而是一套独立的语法,很多编程语言都支持。不同语言中使用的正则表达式语法并不完全一样,但大体都是类似的。...之前已经推送过Python中使用正则表达式的一些例子,详见文末的相关阅读。本文重点介绍一下贪心模式和非贪心模式的用法和区别。...在默认情况下,正则表达式是按照贪心模式去匹配的,也就是去匹配能够匹配到的尽可能多的内容。例如: ?...空白字符和标点符号都算单词尾,但是正则表达式默认使用贪心模式,也就是匹配尽可能多的内容,所以上面的代码匹配到的文本中最后一个单词尾。如图: ? 那如何才能只匹配以字母b开始的单词而不是像上面这样子呢?...可以使用非贪心模式。非贪心模式是使用问号“?”完成的,在正则表达式中,如果问号前面是普通字符或子模式,表示问号前面的字符或子模式可以出现也可以不出现。

    1.5K70

    PHP正则表达式的模式修正符

    PHP在处理正则表达式的时候,在最后面可以加上诸如/i, /is, /s, /isU的选项,他们都代表什么含义呢? 其实他们是PHP正则表达式的模式修正符,用于对正则表达式的补充。...如preg_match('/\[TOC\]/i',$str) 这句话中的小写字母i,他跟在正则表达式后面,起的作用是匹配时忽略大小写 所以,上述正则表达式可以匹配诸如 [toc]、[ToC]、或者[TOC...如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。...如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字符串的开头开始匹配即自动在模式开头加上^。此效果也可以通过适当的模式本身来实现(在 Perl 中实现的唯一方法)。...目前,分析一个模式仅对没有单一固定起始字符的 non-anchored 模式有用。 U (PCRE_UNGREEDY) 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,常用在采集程序上的正则表达式。

    1.5K20

    正则表达式中的子组模式

    虽然前向探测会向后读入内容,但是被读入的内容并 不会被“消耗”掉,也不算做正则表达式匹配的一部分,也就是说,后面的正则表达式依然可以匹配到向后读入的内容。 如果这样说不太明白,可以看看下面的例子。...= mm)#' 这个正则表达式会匹配如'100 mm'这样的字符串。...由于前向探测的正则表达式mm并不属于正则表达式的一部分,所以最后整个表达式(注意,不是$matches下标为1的域,而是整个表达式,也就是下标0)匹配出来的结果是'100'。....*$#' 这个正则表达式在最开头的地方依次使用了5个前向探测子组,分别检查密码长度在8至20之间、含有大写字母、含有小写字母、含有数字以及含有下划线。...九、子组的重复利用 利用下面的方式我们可以重复利用已经在正则表达式中出现的子组: '#(\w+) (?1)#' 这个正则表达式会匹配'foo bar'。不过需要注意的是,重用的子组并不会被捕获。

    1.7K120

    盘点Python正则表达式中的贪婪模式和非贪婪模式

    一、前言 前几天在Python最强王者交流群有个叫【杰】的粉丝问了一个关于Python正则表达式的问题,其中涉及到Python正则表达式中的贪婪模式和非贪婪模式,讨论十分火热,这里拿出来给大家分享下,一起学习...二、解决过程 这里分享【小王】大佬的解答,一起来看看吧,下面是他给的一个示例代码。...: 我想匹配HTML标签中的数据,也就是之间的数据。...这个就是贪婪模式的匹配方式,那么非贪婪模式呢? 小彩蛋 分享一个【小王】大佬的代码,实现的效果是将正则匹配结果写成命名分组Python代码。...这篇文章基于粉丝提问,针对Python正则表达式中的贪婪模式和非贪婪模式问题,给出了具体说明和演示,顺利的帮助粉丝解决了问题。

    86120

    PHP中的正则表达式及模式匹配

    PHP中对于正则处理文本提供了两种方式,一种是PCRE方式(PCRE库是一个实现了与perl 5在语法和语义上略有差异(详见下文)的正则表达式模式匹配功能的函数集....PCRE的模式修正符 i (PCRE_CASELESS)  如果设定此修正符,模式中的字符将同时匹配大小写字母。...这个效果同样可以使用适当的模式构造出来, 并且 这也是perl种实现这种模式的唯一途径....当前, 这种对一个模式的分析仅仅适用于非锚定模式的匹配(即没有单独的固定开始字符). U (PCRE_UNGREEDY) 这个修饰符逆转了量词的"贪婪"模式....参考资料: 1、preg_match_all截取body正则表达式 2、PHP正则表达式匹配多行及模式匹配 3、PHP Manual PCRE模式 @import url(http://www.cnblogs.com

    2.9K20

    XLOOKUP 和 XMATCH 的新正则表达式模式

    XLOOKUP 和 XMATCH 的新正则表达式模式 现在,您可以通过使用新的 [match_mode] = 3 和正则表达式模式作为lookup_value,在现有的 XLOOKUP 和 XMATCH...正则表达式模式作为lookup_value 这将允许 XLOOKUP 和 XMATCH 与单元格中的文本部分匹配,或者与可以用正则表达式描述的任何其他文本模式匹配。...=XLOOKUP(lookup_value,lookup_array,return_array,if_not_found,match_mode,search_mode) 使用正则表达式模式的 XLOOKUP...=XMATCH(lookup_value,lookup_array,match_mode,search_mode) 使用正则表达式模式的 XMATCH 函数 提示和技巧 在编写正则表达式模式时,您可以使用与各种字符匹配的称为...:任何字符 “a”:“a”字符 “a*”:零个或多个 “a” “a+”:一个或多个 “a” 尝试向 Bing Copilot 询问正则表达式模式!

    15210

    正则表达式的贪婪和非贪婪模式

    最近在写程序时,碰到一个场景,需要找到一个字符串中指定的一个片段,而不是所有片段,这就涉及到正则表达式中贪婪和非贪婪两种模式。 字面意思上,正则表达式一般趋向于最大长度匹配,就是贪婪模式。...匹配到结果就好,就少的匹配字符,就是非贪婪模式。 直接上个例子, String str="abcaxc"; Patter p="ab....如果是非贪婪模式,上面使用模式p匹配字符串str,结果就是匹配到:abc,只匹配到了部分的字符串。 编程中怎样区分这两种模式?...默认情况下,正则用的都是贪婪模式,如果要使用非贪婪模式,需要在量词后面直接加上一个问号"?",量词包括如下, (1) {m,n}:m到n个。 (2) *:任意多个。 (3) +:一个到多个。...匹配结果:content:"hello root" 针对不同场景,我们就可以选择合适的模式。

    2.3K20

    2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条, 首先将字母a到z编号为0到25编号,

    2023-12-13:用go语言,密码是一串长度为n的小写字母,一则关于密码的线索纸条, 首先将字母a到z编号为0到25编号, 纸条上共有n个整数ai,其中a1表示密码里第一个字母的编号, 若i>1的话就表示第...i个字母和第i-1个字母编号的差值, 例如,a2就代表密码中第1个字母和第2个字母编号的差值, 若密码是acb,那么纸条上的数字就是[5, 2, 1], a b c d e f 0 1 2 3 4 5...2.在process1函数中,传入当前索引i和前一个字母的编号pre作为参数。 3.如果pre小于0或大于25,则返回0;否则,进入下一步。...2.初始化变量mod为1000000007和n为数组长度。 3.创建二维切片dp,大小为(n+1)×26,用于存储动态规划的结果。...5.倒序遍历数组arr中的元素: 5.1.对于每个字母对应的编号j,遍历0到25: 5.1.1.如果j-arr[i]大于等于0,则将dp[i][j]的值更新为dp[i+1][j-arr[i]]。

    21720

    全网最易懂的正则表达式教程(8 )- 贪婪模式和非贪婪模式

    正则详细教程系列可以看此链接的文章哦 https://www.cnblogs.com/poloyy/category/1796055.html 前言 学过正则表达式的童鞋肯定都知道贪婪模式和非贪婪模式,...今天我们就来仔细讲讲它们的区别和具体实例 为什么会有贪婪与非贪婪模式? 首先,贪婪模式和非贪婪模式跟前面讲到的量词密切相关,我们先再来看看有哪些量词 ? * + ?...这就要说到我们的贪婪、非贪婪模式了 引入贪婪、非贪婪模式 这两种模式都必须满足匹配次数的要求才能匹配上 贪婪模式,简单说就是尽可能进行最长匹配 非贪婪模式,则会尽可能进行最短匹配 正是这两种模式产生了不同的匹配结果...贪婪模式(Greedy) 在正则中,表示次数的量词默认是贪婪的,在贪婪模式下,会尝试尽可能最大长度去匹配 字符串 aaabb 中使用正则 a* 的匹配过程 ?...独占模式(Possessive) 前提 这一小节基本都搬了《正则表达式入门课》的内容 什么是独占模式 贪婪模式和非贪婪模式,都需要发生回溯才能完成相应的功能 但是在一些场景下,我们不需要回溯,匹配不上返回失败就好了

    7.8K41

    golang刷leetcode 技巧(75) 重复至少 K 次且长度为 M 的模式

    给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。 模式 是由一个或多个值组成的子数组(连续的子序列),连续 重复多次但 不重叠 。模式由其长度和重复次数定义。...如果数组中存在至少重复 k 次且长度为 m 的模式,则返回 true ,否则返回 false 。...示例 1: 输入:arr = [1,2,4,4,4,4], m = 1, k = 3 输出:true 解释:模式 (4) 的长度为 1 ,且连续重复 4 次。...不存在长度为 2 且至少重复 3 次的模式。...示例 5: 输入:arr = [2,2,2,2], m = 2, k = 3 输出:false 解释:长度为 2 的模式只有 (2,2) ,但是只连续重复 2 次。注意,不能计算重叠的重复次数。

    23020

    Perl正则表达式详解

    /x 允许正则表达式使用空白符号,免得让整个表达式难读难懂,但这样会让原本的空白符号失去意义,这是可以使用\s来表示空白 /o 只编译一次正则表达式 /n 非捕获模式 p 保存匹配的字符串到${^PREMATCH...|…|…|…) 是 为编号分组重置分支 (?…) 是 命名捕获分组,也记为(?‘NAME’…). (?{…}) 否 执行嵌入的Perl代码 (??{…}) 是 匹配嵌入Perl代码中的正则表达式 (?...\d)c/; # abc123abcc print "$&\n"; 逆序环视的表达式必须只能表示固定长度的字符串。例如(?<=word)或(?<=word|word)可以,但(?<=word?)...<=worlds|world) Gao/; # 报错 在PCRE中,这种变长的逆序环视锚定可重写为(?长度必须固定。...有必要搞清楚这几种匹配模式在匹配机制上的区别: 贪婪匹配:对于那些量词,将一次性从左到右匹配到最大长度,然后再往回回溯释放 非贪婪匹配:对于那些量词,将从左向右逐字符匹配最短长度,然后直接结束这次的量词匹配行为

    85330

    如何使用JavaScript中的正则表达式精准匹配字符串

    通过这个方法,我们可以根据给定的模式来查找字符串是否与我们所期望的完全一致。接下来,我们通过一个实际业务场景来说明。...验证用户输入的订单编号 假设我们有一个业务需求,需要验证用户输入的订单编号是否与预期的格式完全一致。订单编号是一个固定格式的字符串,例如“ORD123”。...我们希望当用户输入的订单编号是“ORD123”时,验证通过,否则不通过。...ORD123 是我们期望匹配的订单编号。 $ 表示字符串的结尾。 因此,这个正则表达式只能匹配到与“ORD123”完全一致的字符串。...结束 通过本文的介绍,我们了解了如何使用JavaScript的match方法结合正则表达式来进行字符串的精准匹配。在实际业务场景中,这种方法特别适合用来验证用户输入、匹配固定格式的字符串等需求。

    19210

    JavaScript正则表达式的模式匹配教程,并且附带充足的实战代码

    JavaScript正则表达式的模式匹配 引言 正文 一、正则表达式定义 二、正则表达式的使用 三、RegExp直接量 (1)正则表达式初体验 (2)深入了解正则 字符类 重复 选择 分组与引用...expression)是一个描述字符模式的对象,简单点来讲就是通过正则表达式规定的模式,从一堆字符串中,找到与该模式匹配的字符串,并可以完成检索或字符串替换的功能。...:...)定义的子匹配模式,不会被计入编号中,所以也不会被 反斜杠+数字 引用。 指定匹配位置 在正则表达式中,我可以利用某些字符,去指定匹配发生的位置。这些字符我们称之为正则表达式的锚。...java后面的字符不作为内容返回,所以最后的匹配结果就是 java 修饰符 正则表达式的修饰符是用以说明高级匹配模式的规则,并且修饰符是放在// 双斜杠外面的,例如这样 /java/g,g就是修饰符 接下来给出一张表...昵称格式:昵称由字母、数字、下划线组成,必须由字母开头,长度为4-16位 let str = "Lpyexplore233" //用户输入的昵称 let re = /^[a-zA-Z][\w

    1.3K20
    领券