正则表达式

JavaScript的三大对象

对着背影说爱祢 提交于 2020-01-06 19:50:33
㈠JS三种对象 JS中,可以将对象分为“内部对象”、“宿主对象”和“自定义对象”三种。 如图所示: ㈡内部对象 ⑴Number对象 ⑵Math:内置对象 Math 对象属性 属性 描述 E 返回算术常量 e,即自然对数的底数(约等于2.718)。 LN2 返回 2 的自然对数(约等于0.693)。 LN10 返回 10 的自然对数(约等于2.302)。 LOG2E 返回以 2 为底的 e 的对数(约等于 1.4426950408889634)。 LOG10E 返回以 10 为底的 e 的对数(约等于0.434)。 PI 返回圆周率(约等于3.14159)。 SQRT1_2 返回 2 的平方根的倒数(约等于 0.707)。 SQRT2 返回 2 的平方根(约等于 1.414)。 Math 对象方法 方法 描述 abs(x) 返回 x 的绝对值。 acos(x) 返回 x 的反余弦值。 asin(x) 返回 x 的反正弦值。 atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 ceil(x) 对数进行上舍入。 cos(x) 返回数的余弦。 exp(x) 返回 E x 的指数。 floor(x) 对 x 进行下舍入。 log(x)

Nginx 反向代理详解

ぐ巨炮叔叔 提交于 2020-01-06 16:10:24
  Nginx 服务器的反向代理服务是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的 Nginx 服务器重要功能。 1、代理   在Java设计模式中,代理模式是这样定义的:给某个对象提供一个代理对象,并由代理对象控制原对象的引用。   可能大家不太明白这句话,在举一个现实生活中的例子:比如我们要买一间二手房,虽然我们可以自己去找房源,但是这太花费时间精力了,而且房屋质量检测以及房屋过户等一系列手续也都得我们去办,再说现在这个社会,等我们找到房源,说不定房子都已经涨价了,那么怎么办呢?最简单快捷的方法就是找二手房中介公司(为什么?别人那里房源多啊),于是我们就委托中介公司来给我找合适的房子,以及后续的质量检测过户等操作,我们只需要选好自己想要的房子,然后交钱就行了。   代理简单来说,就是如果我们想做什么,但又不想直接去做,那么这时候就找另外一个人帮我们去做。那么这个例子里面的中介公司就是给我们做代理服务的,我们委托中介公司帮我们找房子。   Nginx 主要能够代理如下几种协议,其中用到的最多的就是做Http代理服务器。 2、正向代理   弄清楚什么是代理了,那么什么又是正向代理呢?   这里我再举一个例子:大家都知道,现在国内是访问不了 Google的,那么怎么才能访问 Google呢?我们又想,美国人不是能访问 Google吗(这不废话,Google就是美国的)

如何否定正则表达式中的特定单词?

大城市里の小女人 提交于 2020-01-06 15:24:32
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我知道我可以像 [^bar] 一样否定一组字符,但是我需要一个正则表达式,其中否定适用于特定单词-因此在我的示例中,如何否定实际的 bar 而不是“ bar中的任何字符”? #1楼 您可以使用 否定的前瞻性或后瞻性 : ^(?!.*?bar).* ^(.(?<!bar))*?$ 或仅使用基础知识: ^(?:[^b]+|b(?:$|[^a]|a(?:$|[^r])))*$ 这些都匹配不包含 bar 任何东西。 #2楼 除非性能是最重要的问题,否则通常只需要通过第二遍就可以轻松完成结果,而跳过那些与您要否定的单词相匹配的结果通常会更容易。 正则表达式通常意味着您无论如何都在执行脚本或某种低性能的任务,因此请找到易于阅读,易于理解和易于维护的解决方案。 #3楼 下面的正则表达式将满足您的要求(只要支持否定的lookbehinds和lookaheads),即可正确匹配事物; 唯一的问题是,它与单个字符匹配(即,每个匹配都是单个字符,而不是两个连续的“小节”之间的所有字符),如果您使用的字符串很长,则可能会产生高开销。 b(?!ar)|(?<!b)a|a(?!r)|(?<!ba)r|[^bar] #4楼 一个很好的方法是使用 负前瞻 : ^(?!.*bar).*$ 否定的超前构造是一对圆括号,其中圆括号开头是问号和感叹号

一个判断是否为质数的正则表达式

Deadly 提交于 2020-01-06 01:10:32
isprime 这个神奇的正则表达式就是: /^1?$|^(11+?)\1+$/ 首先这个东西的出处在这里:http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/ 原来这个正则表达式是Perl的,在上面的地址中,那个作者用Ruby改写了。为了让大家看得明白,这里我用Javascript改写一下: function isprime(n) { var s = '' ; for (i = 0 ;i < n; ++ i) s += ' 1 ' ; return ! / ^1?$|^(11+?)\1+$ / .test(s); } 下面,我将一半翻译,一半自己的理解来解释一下这个正则表达式为什么能判断是否为质数。 先看一下上面的isprime 函数,它将按照n,生成一个n个'1'的字符串,然后交给这个正则表达式来判断。这个正则表达式匹配任何“非质数”个"1"的字符串。 此正则表达式分成由"|"分割两部分 /^1?$/和/^(11+?)\1+$/。 /^1?$/ 很明显是匹配空字符串或者"1",也就是n==0或n==1,这2个不是质数。 下面来解析一下后面那部分,/^(11+?)\1+$/ 。 它首先匹配(11+?),然后\1是对前面(11+?)匹配部分的引用,也就是

常用的正则表达式总结

ⅰ亾dé卋堺 提交于 2020-01-05 03:02:38
非负整数:^\d+$ 正整数:^[0-9]*[1-9][0-9]*$ 非正整数:^((-\d+)|(0+))$ 负整数:^-[0-9]*[1-9][0-9]*$ 整数:^-?\d+$ 非负浮点数:^\d+(\.\d+)?$ 正浮点数 : ^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)$ 非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 负浮点数:^(-((正浮点数正则式)))$ 英文字符串:^[A-Za-z]+$ 英文大写串:^[A-Z]+$ 英文小写串:^[a-z]+$ 英文字符数字串:^[A-Za-z0-9]+$ 英数字加下划线串:^\w+$ E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$ 邮政编码:^[1-9]\d{5}$ 中文:^[\u0391-\uFFE5]+$ 电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2

Compiler - lexical analysis

无人久伴 提交于 2020-01-05 01:39:47
概念 : 1. Context-Free Grammar : a). 一个终结符集合。b). 一个非终结符集合。c). 一个产生式集合,产生式左部为一个非终结符,右部为终结符或非终结符序列。d). 一个初始状态。 2. Parse Tree(Concrete Syntax Tree), Abstract Syntax Tree(AST) 文法: list -> list+digit | list-digit | digit; digit -> 0|1|2|3|4|5|6|7|8|9 抽象语法树不包含具体的文法信息(或形式) 3. Syntax-Directed Translation 翻译模式: 参考Antlr中的Arbitrary Actions。Syntax-Directed: 文法符号与一个属性集合关联,产生式与一个语义规则集合关联,文法符号(属性集合)和语义规则集合构成Syntax-Directed定义,参考Antlr的Rewrite Rules 4. Nondeterministic finite automata NFA a). 一个状态的有穷集合S; b). 一个输入符号集合Σ; c). 一个转换函数move,把状态和符号组成的二元组映射到状态集合; d). 状态s0是唯一的初始状态; d). 状态集合F是终止状态集合 5. Deterministic finite

C# 词法分析器(五)转换 DFA

孤人 提交于 2020-01-05 00:48:23
系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 在上一篇文章中,已经得到了与正则表达式等价的 NFA,本篇文章会说明如何从 NFA 转换为 DFA,以及对 DFA 和字符类进行化简。 一、DFA 的表示 DFA 的表示与 NFA 比较类似,不过要简单的多,只需要一个添加新状态的方法即可。 Dfa 类 的代码如下所示: namespace Cyjb.Compilers.Lexers { class Dfa : IList<DfaState> { // 在当前 DFA 中创建一个新状态。 DfaState NewState() {} } } DFA 的状态也比较简单,必要的属性只有两个:符号索引和状态转移。 符号索引表示当前的接受状态对应的是哪个正则表达式。不过 DFA 的一个状态可能对应于 NFA 的多个状态(详见下面的子集构造法),所以 DFA 状态的符号索引是一个数组。对于普通状态,符号索引是空数组。 状态转移表示如何从当前状态转移到下一状态,由于在构造 NFA 时已经划分好了字符类,所以在 DFA 中直接使用数组记录下不同字符类对应的转移(DFA 中是不存在 $\epsilon$ 转移的,而且对每个字符类有且只有一条转移)。 在 NFA 的状态定义中,还有一个状态类型属性,但是在

atitit.词法分析原理 词法分析器 (Lexer)

家住魔仙堡 提交于 2020-01-05 00:46:58
atitit. 词法分析 原理 词法分析器 (Lexer) 1 . 词法分析 (英语: lexical analysis ) 1 2 . ;实现词法分析程序的常用途径 : 自动生成 , 手工生成 . [1] 2 2 .1. 词法分析程序的功能 2 2 .2. 如何描述词素 3 2 .3. 单词 token 3 2 .4. Token 的类型 ,根据程序设计语言的特点,单词可以分为五类:关键字、标识符、常量、运算符、界符。以 4 2 .5. 词法分析 的第一阶段即扫描器 4 2 .6. 词法分析 的第 二 阶段 评估器( Evaluator ) 5 2 .7. 例如 C语言程序段的词法分析结果 5 2 .8. 最长原则 6 2 .9. 词法单元的识别 6 2 .10. 不确定 ” ( Nondeterministic Finite Automata ,NFA 8 2 .11. 转换图(transition graph)的表示 9 2 .12. 词法分析 (3)---DFA 10 2 .13. 为什么要 NFA 转 DFA 12 2 .14. 则表达式转 NFA 13 2 .15. 正则表达式如何转换为NFA呢?有几个公式 (MLS2007[1]): 13 2 .16. 构造词法分析器了。大致的流程如下: 19 2 .17. 常用的 token scanner 19 2 .18.

C# 词法分析器(三)正则表达式

你离开我真会死。 提交于 2020-01-05 00:46:10
系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 正则表达式是一种描述词素的重要表示方法。虽然正则表达式并不能表达出所有可能的模式(例如“由等数量的 a 和 b 组成的字符串”),但是它可以非常高效的描述处理词法单元时要用到的模式类型。 一、正则表达式的定义 正则表达式可以由较小的正则表达式按照规则递归地构建。每个正则表达式 $r$ 表示一个语言 $L(r)$,而语言可以认为是一个字符串的集合。正则表达式有以下两个基本要素: $\epsilon$ 是一个正则表达式, $L( \epsilon ) = { \epsilon }$,即该语言只包含空串(长度为 0 的字符串)。 如果 $a$ 是一个字符,那么 $\bf{ a }$ 是一个正则表达式,并且 $L( \bf{a} ) = \{ a \}$,即该语言只包含一个长度为 $1$ 的字符串 $a$。 由小的正则表达式构造较大的正则表达式的步骤有以下四个部分。假定 $r$ 和 $s$ 都是正则表达式,分别表示语言 $L(r)$ 和 $L(s)$,那么: $(r)|(s)$ 是一个正则表达式,表示语言 $L(r) \cup L(s)$,即属于 $L(r)$ 的字符串和属于 $L(s)$ 的字符串的集合( $L(r) \cup L(s) =

正则表达式匹配除了换行符其他任意字符的时候用 .*

筅森魡賤 提交于 2020-01-03 20:06:50
正则表达式匹配除了换行符其他任意字符的时候用 (.*) 分开解释: . :因为.代表的是匹配除了换行符之外的任意一个字符所以他可以匹配任意一个字符 *:这个符号可以匹配0个或是无限个字符 两则咋i一起就是 .* :就相当于又0个或是无限个 . 所以就可以匹配无限个字符 比如: re.match(“h.*er”,“hower”).group() Out[10]: ‘hower’ 来源: CSDN 作者: 柴银磊 链接: https://blog.csdn.net/qq_37699336/article/details/81937714