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

如何优雅的在SpringBoot中编写选择分支,而不是大量if else?

一、需求背景 部门通常指的是在一个组织或企业中组成的若干人员,他们共同从事某一特定工作,完成共同的任务和目标。...在组织或企业中,部门通常是按照职能、工作性质或业务范畴等因素进行划分的,如财务部门、人力资源部门、市场部门等。...部门编号是公司或组织内部对不同职能部门的标识符号,通常采用数字、字母或其组合的形式来进行表示。部门编号的作用在于方便管理者对各个部门进行辨识和分类,同时也有利于人力资源管理和工作流程的优化。...但在开发过程中,如果不建立数据表,则需要用选择结构进行判断赋值,所以就产生了大量的 if-else 代码。 本文的目标,就是消除这些 if-else 代码,用更高级的方法来实现!...在员工类中定义 部门编号 和 姓名 两个字段,代码如下。

23120

正则表达式笔记

我们把像点号(.)这类在正则表达式中具有特殊意义的字符称为元字符(Metacharacter),正因为有了它们才成就了正则表达式强大的模糊匹配能力。...,当然也会有匹配非单词边界的需求,如果你想查找包含 hi 的单词,试一试下面的表达式吧: hi\B 怎么样,简单吧,注意以上元字符匹配的是一个边界,而不是具体的字符。...…) 否定逆序环视(Negative Lookbehind) 成功如果左边不能够匹配 字符转译序列 我们已经学习了好多正则表达式元字符,它们在正则表达式中有特殊的意义,而丧失了它们本来的意义。...恭喜你,你又学会了3个元字符(从严格意义上讲,\r \n \t 并不是正则表达式元字符,而是字符转义,为了便于大家理解,你可以把它们当做元字符看待)。 元字符 名称 匹配对象 ....这个问题的难度真的是很大,我们这样来分析,我们需要在数字中这样的位置插入逗号,它的左边必须有数字,而它右边的数字必须是4的倍数。那么怎么才能找到这样的位置呢? 还记得匹配位置的元字符有哪些吗?

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

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

    默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。...如果目标字符串中没有“/n”字符或者模式中没有 ^ 或 ,则设定此修正符没有任何效果。 S (PCRE_DOTALL) 如果没有使用这个模式修正符号,元字符中的"."...如果设定了此修正符,模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前(但不会匹配任何其它换行符之前)。...本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U) 修正符来启用此选项。...e/U匹配abceadeddd中的abceade而不是abce,如果不加U修正,则匹配abceu(PCRE_UTF8)此修正符启用了一个PCRE中与Perl不兼容的额外功能。

    1.5K20

    Grep(Regex)中的正则表达式

    在GNU的grep实现中,基本正则表达式和扩展正则表达式语法之间没有功能上的区别。唯一的区别是,在基本正则表达式中,元字符?,+,{,|,(和)被解释为文字字符。...为了在使用基本正则表达式时保持元字符的特殊含义,必须使用反斜杠(\)对字符进行转义。稍后我们将解释这些和其他元字符的含义。 通常,您应始终将正则表达式括在单引号中,以避免shell解释和扩展元字符。...请务必注意,grep会将搜索模式作为字符串而不是单词来查找。 因此,如果您要搜索“ gnu”,则grep还将打印“ gnu”嵌入较大字词(例如“ cygnus”或“ magnum”)的行。...^(脱字符号)符号与一行开头的空字符串匹配。 在以下示例中,仅当字符串“ linux”出现在行的开头时才匹配。 $grep '^linux' file.txt $(美元)符号与行首的空字符串匹配。...' file.txt 您可以在方括号内指定一系列字符,而不是一个一个地放置字符。

    2.8K40

    【自然语言处理】NLP入门(八):1、正则表达式与Python中的实现(8):正则表达式元字符:.、[]、^、$、*、+、?、{m,n}

    一、前言   本文将介绍正则表达式中常见的.、[]、^、$、*、+、?、{m,n}等元字符。...Python中,re模块提供了正则表达式操作所需要的功能。 元字符是一些在正则表达式中有特殊用途、不代表它本身字符意义的一组字符。...下面是一个关于它的示例: 元字符在方括号中不起作用,例如:[akm$]和[m.]中元字符都不起作用; 方括号内的^ 表示补集,匹配不在区间范围内的字符,例如:[^3]表示除3以外的字符。...,还能匹配不定长的字符集、这需要指定正则表达式的一部分的重复次数,所涉及的元字符有*、+、?...“非贪心的”模式匹配搜索到尽可能短的字符串,而默认的“贪心的”模式匹配搜索到的、尽可能长的字符串。

    10410

    (89) 正则表达式 (中) 计算机程序的思维逻辑

    字符串类String也是一个重要的类,我们在29节专门介绍过String,其中提到,它有一些方法,接受的参数不是普通的字符串,而是正则表达式。此外,正则表达式在Java中是需要先以字符串形式表示的。...在Java中,没有什么特殊的语法能直接表示正则表达式,需要用字符串表示,而在字符串中,'\'也是一个元字符,为了在字符串中表示正则表达式的'\',就需要使用两个'\',即'\\',而要匹配'\'本身,就需要四个...转义元字符 split将参数regex看做正则表达式,而不是普通的字符,如果分隔符是元字符,比如. $ | ( ) [ { ^ ? * + \,就需要转义,比如按点号'.'...split方法,这时,为避免重复编译,应该优先采用Pattern的方法; 如果regex就是一个字符且不是元字符,String的split方法会采用更为简单高效的实现,所以,这时,应该优先采用String...而replaceAll和replaceFirst则将参数regex看做正则表达式,它们的区别是,replaceAll替换所有找到的子字符串,而replaceFirst则只替换第一个找到的,看个简单的例子

    1.1K70

    java用正则表达式大全_Java 正则表达式 大全「建议收藏」

    下面我们会介绍一些常用的元字符 正则表达式的元字符 元字符的定义:元字符:元字符使得正则表达式具有处理能力,指的是那些在正则表达式中具有特殊意义的专用字符,可以规定其前导字符在目标对象中的出现模式 元字符...在正则表达式中的写法 意义 . ....基本上就是一些比较常用的元字符,我们需要注意元字符在正则表达式中的写法,不能直接用元字符来编写我们的正则程序 正则表达式中的方括号[] 元字符可以是放在[]中的任意单个字符(如[a]表示匹配单个小写字符...a),也可以是字符序列(如[a-d]表示匹配a-d即a,b,c,d中的任意一个字符,而\w表示任意英文字母、数字及下划线)。...(并) [a-z&&[def]] 代表d,e或f中的任意一个字符串(交) [a-z&&[^bc]] 代表a,d,e,f(差) 正则表达式中的限定符 在使用正则表达式时,我们知道元字符一般只能匹配一个位置或一个字符

    54820

    正则表达式介绍与使用

    模式描述在搜索文本时要匹配的一个或多个字符串,正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。...,也需要匹配一个字符; 单词分界符 描述:就是单词或者字符串的边界匹配(单词开头和结尾),并且不消耗匹配字符串中的字符; \不是元字符当与斜线联合使用时候才是; \> #...描述:特殊元字符描述在Ascii中不可见字符,注意在其他开发或者脚本语言中不一定是通用;元字符具有特殊意义的字符但是在正则表示中并不是统一的(在其他的一些高级语言中),在正则表达式的内部字符组有自己的子语言...):作为表达式的而一部分,顺序环视顺序(从右至左)查看文本,尝试匹配子表达式如果能够匹配则返回匹配成功的信息; 注意: 环视功能不是所有语言都支持,下面演示的以perl和grep为主; 环视是不会占用字符的...,即检查子表达式是否匹配,但它只寻找能够匹配的位置而不是真正的占用;环视不消耗字符也就是说在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

    1.7K20

    正则表达式介绍与使用

    模式描述在搜索文本时要匹配的一个或多个字符串,正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。...,也需要匹配一个字符; 单词分界符 描述:就是单词或者字符串的边界匹配(单词开头和结尾),并且不消耗匹配字符串中的字符; \不是元字符当与斜线联合使用时候才是; \> #...描述:特殊元字符描述在Ascii中不可见字符,注意在其他开发或者脚本语言中不一定是通用;元字符具有特殊意义的字符但是在正则表示中并不是统一的(在其他的一些高级语言中),在正则表达式的内部字符组有自己的子语言...):作为表达式的而一部分,顺序环视顺序(从右至左)查看文本,尝试匹配子表达式如果能够匹配则返回匹配成功的信息; 注意: 环视功能不是所有语言都支持,下面演示的以perl和grep为主; 环视是不会占用字符的...,即检查子表达式是否匹配,但它只寻找能够匹配的位置而不是真正的占用;环视不消耗字符也就是说在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

    1.2K10

    系统地学习正则表达式(一):基础篇

    [a-z] 匹配所有的小写字母,而 [^a-z] 匹配所有的不是小写字母的字符。 注意,^字符是将字符集合中的所有字符都取消匹配。 8....所有的元字符都可以在前面加上反斜线转义,当转义后,字符将匹配自身而不是其特殊含义。...一般的,元字符如.和+等用于字符集合的时候是作为字面含义使用的,因此没有必要转义。但是对其进行转义也没错,所以,[0-9+]和[0-9\+]的功能是一样的。...也就是说,正则表达式总是寻找最大的匹配,而不是最小的,这是故意设计的。 但是如果你不希望贪婪匹配的时候就要使用这些量词的非贪婪匹配(匹配尽可能少的字符)。非贪婪量词是在量词后面加上?: ? *?...在多行模式下,正则表达式引擎将换行符作为字符串的分隔符,^将匹配文本的开始或者一行的开始,而$则可以匹配文本的结束或者是一行的结尾处。 修改下上个例子: 正则表达式:(?

    48010

    Python基础库-正则表达式库

    1.2正则表达式库Python 虽然自带正则表达式库re,但是该库不是自动加载进内存中的,需要使用下面的语句来引入import re正则表达式的基础是匹配,匹配操作有两个,一个是规则,另一个是输入字符串在匹配的基础上可以进行替换...-原子原子是正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子。...自定义原子表([])作为原子:如:’/apjsp/’ ’/^apjsp/’5.一些特殊字符和转义后元字符作为原子:所有标点符号,但语句特殊意义的符号需要转义后才可作为原子,如:\” \’ * + ?...等3.正则表达式-元字符和语法在正则表达式中,定义了一些元字符。这些字符一般用来匹配一组字符,如果希望匹配0-9这10个数字字符,那么便可以用元字符\d。元字符一般是以\开头,后面在跟着一个字符。...如.表示任意非换行字符,而 .

    26010

    PHP核心技术与最佳实践 读书笔记 第三章 正则表达式基础与应用

    Perl和.NET对正则表达式的支持最为强大,而Javascript对正则表达式的支持则比较“朴素”。...Expression Tester 3.2 正则表达式中的元字符 \b 是正则表达式规定的一个特殊代码,代表单词的开头或者结尾,也就是单词的分界处。...3.2.1 什么是元字符 元字符(Meta-Characters)是正则表达式中具有特殊意义的专用字符,用来规定其前导字符在目标对象中的出现模式。 元字符 描述 ....E之间的元字符都会作为普通字符来匹配 $reg="#[aby\{]#"; $str='a\bc[]{}'; preg_match_all($reg,$str,$m); var_dump($m); 3.3.3...反义 常用反义 描述 \W 匹配任意不是字母,数字,下划线,汉子的字符 \S 匹配任意不是空白符的字符 \D 匹配任意非数字的字符 \B 匹配不是单词开头或者结束的位置 [^x] 匹配除了x以外的任意字符

    63410

    sed & awk 第二版学习(二)—— 正则表达式语法

    正则表达式 .* 匹配任意数目的字符,而在 shell 中,* 本身就具有这种含义。* 作为一个 shell 元字符,表示“零或多个字符”。...如果类中的第一个字符为右方括号(])则表示它是类的成员。所有其它的元字符在被指定为类中的成员时都会失去它们原来的含义。 ^ 如果作为正则表达式的第一个字符,则表示匹配行的开始。...(用于 POSIX 的 egrep 和 POSIX awk 而不是传统的 egrep 或 awk。) 元字符汇总 元字符在正则表达式中有特殊的含义。下面介绍每个元字符的用法。 1....例如为了从一组以章节为文件名的文件中提取标题可能输入: $ grep '\.H[123]' ch0[12] 注意必须用引号引住其中的模式,以便把它传递给 grep 而不是由 shell...常使用类似的方法匹配一个或多个(而不是零个或多个)空格: * 当星号元字符前面有句点元字符时,表示匹配任意数目的字符。这可用于标识两个固定的字符串之间的字符的跨度。

    7610

    Bash 脚本:正则表达式基础篇

    例如,我们需要搜索一些特别的单词而不是匹配任何字符, 这里,我们正寻找一个单词,以 开头,以 结尾,并且中间只能有 、 或者 中的一个。 在方括号中我们可以提到单个到任意数量的字符。...我们在方括号中也可以定义像 或者 作为匹配字符的列表。 这就像正则表达式的 not 操作。当使用 时,它意味着我们的搜索将包括除了方括号内提到的所有字符。...这就是我们使用乘数元字符如 与 的地方。 、、 或者 也是可以在我们的正则表达式项中使用的其他乘数元字符。...我们只是在搜索中寻找单词,为什么我们得到了整个句子作为我们的输出。 这是因为它满足我们的搜索标准,它以字母 开头,中间有任意数量的字符并以字母 结尾。...那么,我们可以做些什么来纠正我们的正则表达式来只是得到单词而不是整个句子作为我们的输出。 我们在正则表达式中需要增加 元字符, 这将会纠正我们正则表达式的行为。

    1.8K80

    正则表达式入门

    正则表达式(regular expression) 简介 什么是正则表达式?...正则表达式是用来处理字符串的一种规则,它只能处理字符串,既可以用于验证字符串是否符合某个规则,也可以用于把字符串中符合规则的内容捕获到(exec/match...)。...var reg=/\d+/; var str = "2019-07-15"; reg.exec(str); 因为2019都为数字,而-不是数字,所以reg规则从左往右遇到-时就不再继续捕获了,所以reg.exec...("\\d+"); \\注意在字符串中特殊符号\需要进行转义 组成 正则表达式由两部分组成: 元字符 常用元字符 1.量词元字符:设置出现的次数 0~n次 1~n次 ?...除了\n(换行符)以外的任意字符 ^ 以哪一个元字符作为开始 $ 以哪一个元字符作为结束 \n 换行符 \d 0~9之间的一个数字 \D 非0~9之间的数字

    25310

    正则表达式真的很骚,可惜你不会写!

    1.元字符 万物皆有缘,正则也是如此,元字符是构造正则表达式的一种基本元素。 我们先来记几个常用的元字符: 元字符 说明 ....重复限定符 有了元字符就可以写不少的正则表达式了,但细心的你们可能会发现:别人写的正则简洁明了,而不理君写的正则一堆乱七八糟而且重复的元字符组成的。正则没提供办法处理这些重复的元字符吗?...分组 从上面的例子(4)中看到,*限定符是作用在与他左边最近的一个字符,那么问题来了,如果我想要ab同时被*限定那怎么办呢? 正则表达式中用小括号()来做分组,也就是括号中的内容作为一个整体。...转义 我们看到正则表达式用小括号来做分组,那么问题来了: 如果要匹配的字符串中本身就包含小括号,那是不是冲突?应该怎么办?...区间 看到上面的例子,是不是看到有什么规律?是不是还有一种想要简化的冲动? 实际是有的 正则提供一个元字符中括号 [] 来表示区间条件。

    40030

    为什么 Vue 中的 data 属性是一个函数而不是一个对象?

    在 Vue.js 中,data 属性通常是一个函数而不是一个对象,这是为了确保每个组件实例都有独立的数据副本。以下是详细解释:1....}; }});在这个例子中,每个组件实例都会调用 data 函数并获得一个新的数据对象,从而确保数据的独立性。3. 性能优化使用函数返回数据对象还可以提高性能。...这样可以确保每次创建新实例时都生成新的数据对象,而不会影响其他实例。4....data: function() { return { message: 'Hello from App 2' }; } });在这个示例中,...总结将 data 定义为一个函数而不是一个对象,可以确保每个组件实例都有独立的数据副本,从而避免数据污染和意外的副作用,同时提高性能。

    6000

    数据科学系列:数据处理(6)--字符串函数基于R(二)

    如果在使用正则表达式的过程中,发现匹配到并不是你想要的结果,一检查匹配规则是否正确,二是看下你想要匹配的字符是否为一些特殊符号,需要进行转义,三是贪婪匹配还是懒惰匹配。...4.2.4 重复量词 元字符是正则表达式的最基本元素,要想匹配多个元字符,例如匹配QQ号是8位数字的QQ的,使用元字符可以写成^\\d\\d\\d\\d\\d\\d\\d\\d$,是不是发现很不简洁...4.2.5 分组和条件或 上面重复量词都是重复前面的一个元素,那么如果我们想重复前面两个元素,即需要将前面两个元素作为一个整体。正则表达式中使用()来做分组,把括弧中的元素当做一个整体。...正则表达式中使用"|"来表示或(或使用中括号[]),也叫做分支条件,满足分支条件中的任意一种条件时,都会成功匹配。...4.2.6 R语言正则表达式总结 正则表达式部分比较晦涩,看书的时候在这个部分花了很长时间,理解这一块,最好是理论结合练习,多写一下案例,下面会接着介绍stringr包中的使用正则表达式的字符串处理函数

    78820

    python re详解

    下面简单介绍下正则表达式的语法      正则表达式包含一个元字符(metacharacter)的列表,列表值如下:    . ^ $ * + ?...元字符(metacharacters)在character class里面不起作用,如[akm$]将匹配"a","k","m","$"中的任意一个字符。...所以这里我理解之所以group里面没有,是因为search和match方法是匹配到就返回,而不是去匹配 所有。  ...元字符(\),元字符backslash。做为 Python 中的字符串字母,反斜杠后面可以加不同的字符以表示不同特殊意义。    它也可以用于取消所有的元字符,这样你 就可以在模式中匹配它们了。...>>> re.findall("a{2,4}","aaaaaaaa")  ['aaaa', 'aaaa']    通过上面的例子,可以看到{m,n},正则表达式优先匹配n,而不是m,因为结果不是["aa

    67340
    领券