精华内容
下载资源
问答
  • 串式表达式是什么
    2021-03-03 19:19:36

    Java 计算字符串表达式(字符串代码)

    Java 执行字符串代码的方案有很多中,一般情况下我们计算字符串表达式的场景有:

    • 计算逻辑判断式,并返回判断结果(true,false)
    • 计算表达式值,一般返回结果为数值
    • 根据条件简单拼接字符串,返回结果为拼接文本

    我们可以使用 Java 内部自带的 JavaScript 引擎实现上述效果。

    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;
    import javax.script.ScriptException;
    
    class Scratch {
        public static void main(String[] args) throws ScriptException {
            ScriptEngineManager manager = new ScriptEngineManager();
            // 创建脚本执行引擎
            ScriptEngine engine = manager.getEngineByName("js");
            // 执行逻辑判断
            final boolean ret = (boolean) engine.eval("1 == 2");
            System.out.println(ret);
        }
    }
    

    工具: Hutool

    当然,在通常情况下,我们不希望管 ScriptEngineManager 或者 ScriptEngine 什么鬼,只是希望能够计算一个字符串表达式的结果,这里强烈推荐在项目中引入工具包:Hutool。通过这个工具包,我们可以不用管上述两个东西是什么,只需要关注我们的字符串表达式,并且确保表达式的语法符合 JavaScript 语法即可,Hutool文档

    Maven 引入工具包坐标:

    <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.5.9</version>
    </dependency>
    

    代码中执行:

    String ret = (String) ScriptUtil.eval("'Hello World'");
    // 在执行 js 脚本时,不要使用 return 返回结果,否则会报  Invalid return statement 异常
    // 如果想要返回结果,可以直接在脚本末尾给出该变量
    System.out.println(ret);// Hello World
    

    即可获取到表达式执行结果。

    更多相关内容
  • 什么样的正则表达式能过滤出不包含完整“hello”字串的信息呢? 事实上,说正则表达式里不支持逆向匹配并不是百分之百的正确。就像这个问题,我们就可以使用否定查找来模拟出逆向匹配,从而解决我们的问题: ...
  • 实现符号 + - * / max min (),输出逆波兰和结果,输入为整数,输出为整数,其中max/min表达式为max(2,4)。表达式总会得出有效数值且不存在除数为 0 的情况
  • 字符正则表达式

    2019-10-27 10:08:05
    正则表达式: 1.字符模糊匹配,2.字符有条件匹配 Re.match() 从开头开始匹配的 Re.match().group(), 得到匹配结果 Re.search() 从中间开始匹配,只匹配一次就返回 Re.findall() 找到所有的符合的条件,结果放在...

    正则表达式: 1.字符串模糊匹配,2.字符串有条件匹配

    • Re.match() 从开头开始匹配的
    • Re.match().group(), 得到匹配结果
    • Re.search() 从中间开始匹配,只匹配一次就返回
    • Re.findall() 找到所有的符合的条件,结果放在一个列表中
    • “$” 符号匹配的是 字符串最后一个字符,目标字符串是以 $前面的字符结尾
    • re.split() 以匹配的内容作为分割符
    • re.sub() 替换字符串中符合条件的匹配项
      在这里插入图片描述
      在这里插入图片描述

    参考链接I

    展开全文
  • 在程序设计中,可能碰到需要对字符数学表达式求值的问题,常用的方法是解析表达式,生成二叉树,然后进行计算。...程序解析字符串表达式,将其转换为逆波兰,然后生成表达式二叉树,最后计算表达式值。
  • VB 字符转 换成函 数表达 实例 源码 sim cos "sqr(19-tan(98)*tan(91)-sin(122)*(5*5-(199-12)))"等
  • 代码均为自己设计所写,分享一下。 字符数学表达式(含括号)计算值 如: "31+3*3-20/2*5+40/8+4*5" ((2*(19-13*(1+2)/39)/6+4)-5)/5+((2+3)*2-5)
  • 例如枚举出日志文件中不包含某个特定字符的条目,找出不以某个特定字符打头的条目,等等。 使用否定前瞻 正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,这两个术语非常形象的描述了正则引擎的...
  • 由于我对正则不是很清楚,我想求取把字符 “str, DGK, rDJK, DJKl,DGK , end” 替换为 “str, MSN, rDJK, DJKl,MSN , end” 求匹配的写法。 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] ...
  • java 字符 详细实例代码 字符检索 可改变字符 字符生成器 日期和时间字符格式化
  • 什么是正则表达式

    千次阅读 2021-06-07 20:48:13
    什么是正则表达式?1. 什么是正则表达式?2. 基本匹配3. 元字符 1. 什么是正则表达式? 正则表达式是⼀组由字⺟和符号组成的特殊⽂本,它可以⽤来从⽂本中找出满⾜你想要的格式的句⼦。 ⼀个正则表达式是⼀种从左到...

    1. 什么是正则表达式?

    正则表达式是⼀组由字⺟和符号组成的特殊⽂本,它可以⽤来从⽂本中找出满⾜你想要的格式的句⼦。

    ⼀个正则表达式是⼀种从左到右匹配主体字符串的模式

    “Regular expression”这个词⽐较拗⼝,我们常使⽤缩写的术语“regex”或“regexp”。

    正则表达式可以从⼀个基础字符串中根据⼀定的匹配模式替换⽂本中的字符串、验证表单、提取字符串等等。

    想象你正在写⼀个应⽤,然后你想设定⼀个⽤户命名的规则,让⽤户名包含字符、数字、下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑。

    我们使⽤以下正则表达式来验证⼀个⽤户名:

    在这里插入图片描述
    以上的正则表达式可以接受 john_doe 、 jo-hn_doe 、 john12_as 。但不匹配 Jo ,因为它包含了⼤写的字⺟⽽且太短了。

    其意思就是用来匹配3到15个都是a到z、0到9、-、_里面的某个字符组成的字符串,开头是、结尾也是。
    在这里插入图片描述

    2. 基本匹配

    正则表达式其实就是在执⾏搜索时的格式,它由⼀些字⺟和数字组合⽽成。

    例如:⼀个正则表达式 the ,它表示⼀个规则:由字⺟ t 开始,接着是 h ,再接着是 e 。

    "the" => The fat cat sat on the mat.
    

    所以它匹配的是the,因为正则表达式是大小写敏感的,所以 the 不会匹配 The。

    又比如正则表达式 123 匹配字符串 123 。它逐个字符的与输⼊的正则表达式做⽐较。

    3. 元字符

    正则表达式主要依赖于元字符。

    元字符不代表他们本身的字⾯意思,他们都有特殊的含义。⼀些元字符写在⽅括号中的时候有⼀些特殊的意思。以下是⼀些元字符的介绍:

    元字符描述
    .句号匹配任意的那个字符除了换行符
    [ ]字符种类。匹配方括号里面的任何字符
    [^ ]否定的字符种类。匹配除了方括号里的任何字符
    *匹配大于等于0个重复的在*号之前的字符
    +匹配>=1个重复的+号前的字符。
    ?标记?之前的字符为可选.
    {n,m}匹配num个⼤括号之前的字符或字符集 (n <= num <= m).
    (xyz)字符集,匹配与 xyz 完全相等的字符串.
    |或运算符,匹配符号前或后的字符.
    \转义字符,⽤于匹配⼀些保留的字符 [ ] ( ) { } . * + ? ^ $ \
    ^从开始⾏开始匹配.
    $从末端开始匹配.

    运算符示例
    正则匹配字符集

    参考:正则表达式深入浅出

    展开全文
  • 正则表达式是个非常好的工具,它的作用主要是用简单的有规则的表达式来检索和匹配一段字符。 所以正则表达式的作用大致有两种: 1、匹配 2、检索 一、正则表达式基础知识 1、元字符的概念和元字符的反义 (1)...

    C#正则表达式基础语法

    正则表达式是个非常好的工具,它的作用主要是用简单的有规则的表达式来检索和匹配一段字符串。
    所以正则表达式的作用大致有两种:

    1、匹配
    2、检索

    为了更好的测试正则表达式的规律我们可以采用正则表达式工具。RegEx Buddy。
    一、正则表达式基础知识
    1、元字符的概念和元字符的反义
    (1) 点(.)
    表示匹配除了换行符意外的任意单个字符。
    在这里插入图片描述
    (2)\w
    表示匹配数字,字母,下划线,汉字等单个字符
    在这里插入图片描述
    如上,空格和标点符号和斜杠都没有匹配上。其余都匹配上了

    (3)\s
    匹配任意空白单个符
    在这里插入图片描述
    如上,所有空格被匹配上了。其余没有

    (4)\d
    匹配单个数字
    在这里插入图片描述
    (5)\b
    匹配单词的开始或结束
    \bgood
    在这里插入图片描述

    good\b
    在这里插入图片描述

    \bgood\b
    在这里插入图片描述

    (6)\W
    与\w是反义,即\W匹配的是任意不是字母,数字,下划线或汉字的单个字符
    在这里插入图片描述
    (7)\S
    与\s是反义,即\S匹配任意不是空白的单个字符,换行符也算是空白
    在这里插入图片描述
    (8)\D
    与\d是反义,即\D匹配的是任意不是数字的单个字符
    在这里插入图片描述
    (9)\B
    与\b是反义,即\B匹配的是任意不是单词开头或结束的字符
    \Bgood
    在这里插入图片描述
    上述结果刚好和\b相反

    (10)[^x]
    匹配除了x意外的任意单个字符
    [^2]
    在这里插入图片描述
    上述结果除了2外其他全部匹配上了。

    (11)[^good]
    匹配除了good字母外外的任意单个字符
    在这里插入图片描述
    (12)^和$
    表示字符串的开头或者字符串的结尾。
    例如:
    ^a?ld&
    表示的是匹配一个字符串其开头有或者没有a字符,但后面肯定紧跟着ld并结束的字符串。
    所以ald、old、cld、eld、都可匹配
    adalde不可匹配,因为ald在中间,前面不是开始,后面也不是结束

    2、转义匹配
    以‘.’符号为例,上述我们提及到了‘.’匹配的是任意不为空的字符。但是如果我们就是想要匹配‘.’怎么办?
    解决办法就是加上.即可。
    在这里插入图片描述
    在这里插入图片描述

    3、实例

    1、
    I am a Apple,the old is 16.
    ald
    bld
    cld
    eld
    fld
    gld
    ld
    问:找出上述字符串中的所有包含ld的单词
    答:^.?ld$
    解析:
    ‘.’表示匹配所有不为空的单个字符
    ‘?’与‘.’搭配表示有或者没有即0或1都可的意思
    ld表示匹配中含有这两个字母
    ^和$表示匹配的开始和结束
    在这里插入图片描述
    注意:第一句中的old不会匹配,因为它并不是开始位置,不符合^的约束

    二、正则表达式中几种重复模式

    1、*
    指的是重复零次或更多次

    2、+
    指的是重复一次货更多次

    3、?
    指的是重复一次或零次

    4、{n}
    指的是重复n次

    5、{n,}
    指的是重复n次或更多次

    6、{n,m}
    指的是重复n到m次,例如{2,4}即2个到4个均可以。

    三、正则表达式中分支条件

    如果匹配模式包含多种,只要满足其中一种即可的话。就将多种表达式中间用|符号隔开,即使或的意思。
    如下:
    0\d{2}-\d{8}|0\d{3}-\d{8}
    以上两种表达式只要满足其中一种即可。值得注意的是,会存在短路现象。

    四、正则表达式字符类

    首先提个概念:
    []的作用是表示一个范围。
    例如:
    [aeiou]表示aeiou都可以
    [0-4]表示01234这几个字符

    常用字符类说明:
    1、[0-9]\d 表示单个数字字符
    2、[a-z0-9A-Z]
    \w 表示数字,字母汉字等
    3、[aeiou] 表示aeiou都可以

    又如下:
    (?0\d{2}[)-]?\d{8}
    其中(代表‘(’这个字符,前面的\是转义的意思

    固上面的正则表达式的意思为:
    匹配一个字符串,其中开头可能有(也可能没有,接着后面固定为0开头的共三位数字,接着有或者没有)或者-,最后又8个数字。
    它的目的就是匹配前三个数字带括号或者中间带-的号码。
    在这里插入图片描述

    五、正则表达式的分组概念&贪婪与懒惰概念

    1、分组

    (1)将子表达式做成子集
    (2)使用()进行分组
    (3)方便对match的字符串进行划分
    (4)分组的命名:(?exp)
    (5)(?:exp)
    (6)(\d{1,3}.){3}\d{1,3} IP地址的匹配

    2、贪婪和懒惰

    (1)*? 重复任意次,但是尽可能少
    (2)+?重复1次或更多次,但尽可能少
    (3)??重复0次货
    (1)贪婪 (尽可能的多)
    a.*b表示匹配第一个字符为a,最后一个为b中间有0个或很多个任意非空字符。
    所以aabab的结果为aabab

    (2)懒惰 (尽可能的少)
    a.*?b表示匹配第一个字符为a,最后一个字符为b,中间可能有多个任意非空字符可能没有。其中?是与*匹配的,这样的结果就是要么只有一个任意非空字符,要么有多个非空字符。
    所以aabab的结果为aab,因为aab满足中间有一个字符。按照就

    六、处理选项

    1、IgnoreCase
    匹配时不区分大小写

    2、Multiline
    更改^和$的含义,使他们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。
    通常来说^和$有两个可选择的含义,一个是一个连串的单词的首和尾,
    一个是一整行的首和尾,通过Multiline可以改变他们的含义,使之面向的是一整行的首和尾。

    3、Singleline
    更改.的含义,使它与每一个字符匹配(包括换行符\n)

    4、IgnorePatternWhitespace
    忽略表达式中的非转义空白并启用由#标记的注释

    5、ExplicitCapture
    仅补货已被显示命名的组

    七、负向0宽断言

    例如:查找这样一个单词–它里面出现了字母q但是后面不能跟u
    表达式1:
    \b\w*[^u]\w*\b

    展开全文
  • 如何将字符转化为数学表达式

    千次阅读 2019-11-13 18:01:56
    ... $formula = "361-943)*487+100"; $val = eval('return '.$formula.'...即可实现,但有一个严重的问题,当你的表达式错误是,即$formula = "361-943)*487+100++-"; 这时会触发一个致命错误,所以当你考虑使用eva...
  • C语言 计算给定字符串表达式的值

    千次阅读 2020-06-13 09:36:08
    C语言 计算给定字符串表达式的值 可以包括加减乘除运算以及括号运算 代码 #include<stdio.h> #include<string.h> #define maxn 100005 char s[maxn],infixList[maxn][10]; char suffix[maxn][10]...
  • 常量表达式什么叫常量表达式

    千次阅读 2021-05-20 08:40:10
    不是很清楚这个问题的定义,只是知道(a b)这种表达式下a和b都可以是变量Java编译器对于String常量表达式的优化是什么呢?完整问题:Java编译器对于String常量表达式的优化是什么呢?好评回答:首先把问题摆出来,先...
  • 本文实例讲述了ES6正则表达式...第二种情况是,参数是一个正则表示,这时会返回一个原有正则表达式的拷贝。 var regex = new RegExp(/xyz/i); // 等价于 var regex = /xyz/i; 但是,ES5不允许此时使用第二个参数,
  • 什么是正则表达式

    千次阅读 2019-01-31 17:09:50
    最近看了一篇关于正则表达式的学习笔记,觉得讲的非常好,更有图形化的神器相助,想不学会都难,所以想转给大家看看。 话说不是开发为啥要学正则表达式...1.什么是正则表达式 正则表达式,又称正规表示、正规表...
  • 例如-表达式:2500*2^(5-2) 说明:^为次方符号 import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public static void main(String[] args)...
  • 字符算术表达式求值

    千次阅读 2018-08-25 11:06:24
    * 算术表达式求值 该类是一个能够解释给定字符所表达的运算并计算得到结果的程序 * * 控制台输入一个需要计算的算术表达式:由左右括号、运算符、算术表达式组成的表达式 运算优先级有括号()确定。运算符支持....
  • 中缀表达式转后缀表达式,并进行计算; 支持: 支持函数: Abs 绝对值 Power 幂 Sqr 平方 Sqrt 平方根 Abs Sqr Sqrt 需要加括号 Power不需要 * 后缀运算符: * 第1级: () 从左到右 * 算出运算符: * 第4级:* \ % 从...
  • c++字符串表达式计算

    千次阅读 2020-01-07 23:13:47
    //字符转数字 template,typename D> D TTrans(const S& s){ D d; stringstream ss; ss ; ss >> d; return d; } bool IsOP(const char c){ switch (c) { case '+': case '-': case '*': case '/': ...
  • 正则表达式,又称正规表示、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符来描述、匹配一...
  • python将字符转化为数学表达式

    千次阅读 2021-05-15 13:46:48
    a = x**2+y**2 repr(a) Out[172]: 'x**2 + y**2' type(repr(a)) Out[173]: str diff(repr(a),'x')#对x进行求偏导 Out[174]: 2*x
  • python计算数学表达式

    千次阅读 2021-02-03 05:06:45
    python处理长字符数学计算比如拿到一字符"1+2*3/4-8"有什么支持使用eval函数 eval() 函数就是用来执行一个字符串表达式,并返回表达式的值。 直接print("1+2*3/4")就可以了小编困的时候发现咖啡或任何提神的...
  • 正则表达式过滤字符,参考这篇正合适 在做后台管理系统时,涉及正则过滤问题,如下图,后台返回来的带有特殊字符结构 在修改保存时,需要对title属性进行过滤后保存,否则,会出现重复特殊字符的情况 //过滤空格...
  • Python正则表达式

    2022-05-09 09:41:57
    正则表述用于搜索、替换和解析字符。正则表达式遵循一定的语法规则,使用非常 灵活,功能强大。使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。 正则表达式是对字符(包括普通字符...
  • 什么是Lambda表达式,它有什么作用?

    千次阅读 多人点赞 2020-09-20 11:44:31
    lambda表达式是JAVA8中提供的一种新的特性,它支持JAVA也能进行简单的“函数编程”。 它是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,...
  • 正则表达式是用于处理字符的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达标题可能表达的不清楚,看...
  • Java 中如何运行字符串表达式?!

    千次阅读 2018-11-27 17:57:59
    也有另外的处理方式是采用 Java 内置的 JavaScript 引擎等运行字符串表达式,但是内置引擎也有弊端,比如频繁运行片段的字符的效率非常低,并且与 Java 之间的数据交互比较麻烦,于是,便产生了写一个“字符.....
  • 就像字符直接量被定义为包含在引号内的字符一样,正则表达式直接量也被定义为包含在一对斜杠 (/)之间的字符.所以,JavaScript可能会包含如下的代码: var pattern = /s$/; 这行代码创建一个新的RegExp对象,并将它赋给

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 232,033
精华内容 92,813
关键字:

串式表达式是什么