假设你正在查看下图1所示的2列表,并且想知道每行中的两组数据哪里不同。 图1 可以使用一个简单的VBA程序来比较这2个列表并突出显示不匹配的字母或单词。演示如下图2所示。...要比较两组数据,需要执行以下操作: 1.对于列1中的每个项目 2.获取列2中的对应项 3.如果它们不匹配 4.对于单词匹配 (1)对于第一个文本中的每个单词 (2)在第二个文本中获取相应的单词 (3)相比较...(4)如果不匹配,以红色突出显示 (5)重复其他词 5.对于字母匹配 (1)找到第一个不匹配的字母 (2)在第二个文本中突出显示自该点的所有字母 6.重复列1 中的下一项 7.完毕 一旦你写下了这个逻辑....找到第一个不匹配的单词/字符 length = Len(cell1.Value2) If Range("wordMatch") Then '匹配单词...Color = -16776961 End With End If Else '匹配字母
ccy结尾的字符串; 2.直接量字符 正则表达式中的所有字母和数字都是按照字面含义进行匹配的。...JavaScript正则表达式语法也支持非字母的字符匹配,这些字符需要通过反斜杠作为前缀进行转义。...字母和数字字符 自身 \o NUL字符 \t 制表符 \n 换行符 \v 垂直制表符 \f 换页符 \r 回车符 \xnn 由十六进制nn指定的拉丁字符 \uxxxx 由十六进制xxxx指定的Unicode...\w{2,4}\s+javascript+\s+[^(]*/.test('ccy is javascript coder');//true 匹配3个字母或数字加0个或1个空格加2到4个字母或数字加至少...7.修饰符 字符 含义 I 不区分大小写 g 全局匹配 m 多行匹配模式 8.用于匹配模式的String方法 1.search(reg) 参数reg为正则表达式,返回第一个与之匹配的子串的起始位置,如找不到则返回
正则表达式是用于匹配字符串中字符组合的模式。正则表达式的模式规则是由一个字符序列组成的。包括所有字母和数字在内,大多数的字符都是直接按照直接量描述待匹配的字符。...直接量字符 正则表达式中所有字母和数字都是按照字面含义进行匹配的,其他非字母的字符需要通过反斜杠(\)作为前缀进行转移,如 \n 匹配换行符。...[^] 可以匹配任意字符。 字符类可以使用连字符来表示字符范围。比如匹配小写字母[a-z],匹配任何字母和数字可以用[a-zA-Z0-9]。...空白符的字符 \d 等价于 [0-9] \D 等价于 [^0-9] [\b] 退格直接量,与退格键 \u0008 匹配,注意不同于 \b 方括号内也可出现转义字符,如 [\d\s] 表示匹配任意空白符或数字...如果第二个表达式是字符串,将把第一个参数匹配的子串替换为 newSubStr。如果在替换字符串中出现了 $ 加数字,replace 将用与指定的子表达式相匹配的文本来替换这些字符。
的名称是“感叹号”。 一般类别。将字符分成字母、大写字母、数字和标点等类别。 年龄。该字符是在哪个版本的 Unicode 中引入的(1.0、1.1、2.0 等)? 已弃用。...JavaScript 正则表达式和 Unicode JavaScript 正则表达式中的 Unicode 支持(请参阅第十九章)非常有限。例如,没有办法匹配“大写字母”等 Unicode 类别。...在非多行模式下,它们只在输入的开头或结尾匹配。 其他重要的字符类是基于 ASCII 而不是 Unicode 定义的: \d \D(数字,非数字):数字等同于[0-9]。...库 一些库可帮助处理 JavaScript 中的 Unicode: Regenerate有助于生成像前面那样的范围,以匹配任何代码单元。...例如,\p{Letter}匹配各种字母表中的字母,而\p{^Letter}和\P{Letter}都匹配所有其他代码点。第三十章包含了对 XRegExp 的简要概述。
由于各种原因,很多字符无法直接在代码中输入或输出,只能通过转义序列间接表示。 Unicode 转义序列方法:\u + 4位十六进制数字。 Latin-1 转义序列方法:\x + 2位十六进制数字。...JavaScript 标识符包括变量名、函数名、参数名和属性名。 合法的标识符应该注意以下强制规则: 第一个字符必须是字母、下划线(_)或美元符号($)。...除了第一个字符外,其他位置可以使用 Unicode 字符。一般建议仅使用 ASCII 编码的字母,不建议使用双字节的字符。 不能与 JavaScript 关键字、保留字重名。...var \u0061 = "字符 a 的 Unicode 转义序列是 \\0061"; document.write(\u0061); 使用转义序列不是很方便,一般常用转义序列表示特殊字符或名称,如 JavaScript...解析器一般采用最长行匹配原则,不恰当地换行显示一句代码,容易引发异常或错误。
,配合循环遍历即可完成统计: // 标点和中文 var sTotal = 0; // 中文字判断 var iTotal = 0; // 英文字母 var eTotal = 0; // 数字判断 var...)) { //判断 } 其中的match方法可能很多人平时没用,该方法是:可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。...0-9 10字 30-39 小写英文字母 26字 61-7a 大写英文字母 26字 41-5a 而汉字的Unicode范围为.../[0-9]/:匹配数字0到9 理论上,sTotal包含:中文字、中文全角字符(如:?。、,等)。...(iTotal * 2 + (sTotal - iTotal) * 2 + eTotal); [绑定的元素] 总结 使用JavaScript,轻松前端进行字符和字数的统计。
Grep Console 允许您定义一系列的正则表达式,利用它们来对控制台的输出或文件进行测试。每一个表达式匹配的行都会被整行的应用某个样式,或者播放声音。...Maven Helper 这个一个必须与maven一起工作的插件。它提供了运行/调试当前测试文件的功能。...递增/递减: 递增/递减所有找到的数字 复制行并且递增/递减所有找到的数字 创建序列:保持第一个数字,递增替换所有其他数字 递增重复的数字 按自然顺序排序: 按行倒序 按行随机排序 区分大小写A-z排序...中/右 过滤/删除/移除: grep选定的文本,所有行不匹配输入文字将被删除。...维持移位字的高位首字符的小写字母/大写字母或小写字母。 ?
强密码 首先,我们明确强密码的组成: 包含数字、大小写字母和特殊符号 尽量减少重复字符 尽量避免连续字符 之后,我们要考虑如何生成随机字符: 使用random随机数 接下来,我们就使用代码实现上述需求:...第一步当然是判断是否包含数字和大小写字母以及特殊字符了,而判断这些内容,当时用正则表达式比较好。 为什么用正则 为什么我会引用正则表达式?...image.png image.png 如果你之前没接触正则表达式,可以看我这篇文章: 一篇文章,轻松入门Python中的正则表达式 匹配数字 所以,匹配数字: # 判断是否包含数字 def hasNumber...匹配英文 匹配英文,也很简单: # 判断是否含有小写字母 def hasLowLetter(pwd): if (re.search(r'[a-z]', pwd)): return...Tips:网站的强密码生成,使用的是JavaScript实现的,有机会出个JavaScript实现的教程嗷。
m 到 p:[a-lq-z](减去) 预定义字符类.任何字符(与行结束符可能匹配也可能不匹配)\d数字:[0-9]\D非数字: [^0-9]\s空白字符:[ \t\n\x0B\f\r]\S非空白字符:...\p{ASCII}所有 ASCII:[\x00-\x7F]\p{Alpha}字母字符:[\p{Lower}\p{Upper}]\p{Digit}十进制数字:[0-9]\p{Alnum}字母数字字符:[\...因此,表达式 \\ 与单个反斜线匹配,而 \{ 与左括号匹配。 在不表示转义构造的任何字母字符前使用反斜线都是错误的;它们是为将来扩展正则表达式语言保留的。...与 Perl 中一样,Unicode 块和类别是使用 \p 和 \P 构造编写的。如果输入具有属性 prop,则与 \p{prop} 匹配,而输入具有该属性时与 \P{prop} 不匹配。...块使用前缀 In 指定,与在 InMongolian 中一样。可以使用可选前缀 Is 指定类别:\p{L} 和 \p{IsL} 都表示 Unicode 字母的类别。
除了换行符和其他Unicode行终止符之外的任意字符 \w 相当于[a-zA-Z0-9] \W 相当于[^a-zA-Z0-9] \s 任何Unicode空白符 \S 任何非Unicode空白符 \d 任何数字...匹配前一项0次或1次,相当于{0,1} + 匹配前一项至少一次,相当于{1,} * 匹配前一项0次或更多次,相当于{0,} 我们接下来就利用这些语法进行一下重复操作,例如我们要匹配一段字符串中的11位数字...我们如果要匹配一个三位的字母并且后面跟上一个一位的可选数字,我们可以这样 /[a-zA-Z]{3}\d?/ ,[a-zA-Z]{3} 表示匹配任意三位字母,\d?...在复杂的例子里,我们也可以这样使用,先给出需求,匹配一段字符串,它可以是3位的不区分大小写的字母,也可以是4位的数字 let pattern = /[a-zA-Z]{3}|\d{4}/ let str...= "Lpyexplore2333" str.match(pattern)[0] //返回 Lpy 在这个例子中,我们匹配的模式是3位的不区分大小写的字母或者4位数字,但是 str 中既有3位的不区分大小写的字母
expression)是一个描述字符模式的对象,简单点来讲就是通过正则表达式规定的模式,从一堆字符串中,找到与该模式匹配的字符串,并可以完成检索或字符串替换的功能。...除了换行符和其他Unicode行终止符之外的任意字符 \w 相当于[a-zA-Z0-9] \W 相当于[^a-zA-Z0-9] \s 任何Unicode空白符 \S 任何非Unicode空白符 \d 任何数字...匹配前一项0次或1次,相当于{0,1} 匹配前一项至少一次,相当于{1,} * 匹配前一项0次或更多次,相当于{0,} 我们接下来就利用这些语法进行一下重复操作,例如我们要匹配一段字符串中的11位数字...在复杂的例子里,我们也可以这样使用,先给出需求,匹配一段字符串,它可以是3位的不区分大小写的字母,也可以是4位的数字 let pattern = /[a-zA-Z]{3}|\d{4}/ let str...= "Lpyexplore2333" str.match(pattern)[0] //返回 Lpy 在这个例子中,我们匹配的模式是3位的不区分大小写的字母或者4位数字,但是 str 中既有3位的不区分大小写的字母
ECMAScript 2018(简称 ES2018)是该标准的第九版,引入四个新特性进一步提高了 JavaScript 的文本处理能力: 后行断言 具名组匹配 s 修饰符:dotAll 模式 Unicode...属性类 以下小节详细介绍这些新特性 后行断言 断言能够根据之前或之后的内容匹配一系列字符,丢弃可能不需要的匹配。...Perl 支持具名组,语法与 JavaScript 相同(JavaScript 模仿了 Perl 的正则表达式语法)。Java 也使用与 Perl 相同的语法。...尽管有这个缺点,JavaScript 开发人员仍然可以通过使用两个相反的字符类来匹配所有字符,例如 [wW],表示匹配字符( w)或非字符( W): console.log(/[wW]/.test('...新特性包括后行断言,具名组匹配,s 修饰符:dotAll 模式,Unicode 属性类。后行断言,x 只有在 y 后面才匹配。与常规捕获组相比,具名组匹配使用更具表现力的语法。
示例中表达式末尾的i表示正则表达式不区分大小写,虽然模式中使用小写字母,但可以匹配输入字符串中的大写字母B。 匹配和分组 test方法是匹配正则表达式最简单的方法。...因此/^\d+$/可以匹配整个由一个或多个数字组成的字符串,/^!/匹配任何以感叹号开头的字符串,而/x^/不匹配任何字符串(字符串起始位置之前不可能有字符x)。...例如,就 JavaScript 的正则表达式而言,“单词字符”只是 26 个拉丁字母(大写和小写)和数字,而且由于某些原因还包括下划线字符。...NumbersAgain 编写一个表达式,只匹配 JavaScript 风格的数字。支持数字前可选的正号与负号、十进制小数点、指数计数法(5e-3或1E10,指数前也需要支持可选的符号)。...也请注意小数点前或小数点后的数字也是不必要的,但数字不能只有小数点。例如.5和5.都是合法的 JavaScript 数字,但单个点则不是。
正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式,在 JavaScript中,正则表达式也是对象。...|y) : 查找任何以 | 分隔的选项 元字符 \d : 查找数字 \s : 查找空白字符 \b : 匹配单词边界 \uxxxx : 查找以十六进制数 xxxx 规定的 Unicode 字符 ^ : 表示开头...$ : 表示结尾 量词 量词只对前一个内容起作用 n+ : 匹配任何包含至少一个 n 的字符串 n* : 匹配任何包含零个或多个 n 的字符串 n?...: 匹配任何包含零个或一个 n 的字符串 ‘+’ : 至少一个 ‘-’ : 0个 {n} :正好出现n次 {m,n} :出现m-n次 {m, } : m次以上 小练习 去除以下字符串开头与结尾空格 str...@ 任意字母数字 .
各种表格 直接量字符 字符 匹配 字母和数字字符 自身 \o NUL字符 \t 制表符(\u0009) \n 换行符(\u000A) \v 垂直制表符(\u000B) \f 换页符(\u000C) \r...空白符 \S 任何非Unicode空白符,注意\w和\S的不同 \d 任何ASCⅡ数字,等价于[0-9] \D 除了ASCⅡ数字之外的任何字符,等价于[^0-9] [\b] 退格直接量 注: 方括号又叫字符组...匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1} + 匹配前一项1次或多次,等价于{1,} * 匹配前一项0次或多次,等价于{0,} 注: javascript默认是贪婪匹配,也就是说匹配重复字符是尽可能多地匹配...而进行非贪婪匹配,只需要在待匹配的字符后面跟随一个问号即可:“??”、“+?”、“*?”、“{1,5}?”。比如:/a+/可以匹配一个或多个连续的字母a。...RegExp的方法 方法 意义 exec() 参数:字符串。在一个字符串中执行匹配检索,与String.macth()非全局检索类似,返回一个数组或null。 test() 参数:字符串。
各种表格 直接量字符 字符 匹配 字母和数字字符 自身 \o NUL字符 \t 制表符(\u0009) \n 换行符(\u000A) \v 垂直制表符(\u000B) \f 换页符(\u000C) \r...空白符 \S 任何非Unicode空白符,注意\w和\S的不同 \d 任何ASCⅡ数字,等价于[0-9] \D 除了ASCⅡ数字之外的任何字符,等价于[^0-9] [\b] 退格直接量 注: 方括号又叫字符组...匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1} + 匹配前一项1次或多次,等价于{1,} * 匹配前一项0次或多次,等价于{0,} 注: javascript默认是贪婪匹配,也就是说匹配重复字符是尽可能多地匹配...而进行非贪婪匹配,只需要在待匹配的字符后面跟随一个问号即可:“??”、“+?”、“* ?”、“{1,5}?”。比如:/a+/可以匹配一个或多个连续的字母a。...RegExp的方法 方法 意义 exec() 参数:字符串。在一个字符串中执行匹配检索,与String.macth()非全局检索类似,返回一个数组或null。 test() 参数:字符串。
类名:] 匹配“ASCII类”外的一个字符,“ASCII类”见后面的说明 \pUnicode普通类名 匹配“Unicode类”中的一个字符(仅普通类),“Unicode类...”见后面的说明 \PUnicode普通类名 匹配“Unicode类”外的一个字符(仅普通类),“Unicode类”见后面的说明 \p{Unicode类名}...匹配“Unicode类”中的一个字符,“Unicode类”见后面的说明 \P{Unicode类名} 匹配“Unicode类”外的一个字符,“Unicode类”见后面的说明 --...\123 匹配 8 進制编码所代表的字符(必须是 3 位数字) \x7F 匹配 16 進制编码所代表的字符(必须是 3 位数字)...命名的“Unicode 类”不包含在“字符类”中 (相当于 \P{Name}) ------------------------------------------------------------
]:匹配从 "a" 到 "z" 的任意字符 [^a-n]:补集,匹配除"a" 到 "n"的其他字符 [A-Z]:匹配从 "A"到 "Z" 的任意字符 [0-9]:匹配从 "0" 到"9" 的任意数字 比如匹配所有的字母和数字可以写成...常见的元字符有: \d:匹配任意数字,等价于 [0-9] \D:匹配任意非数字字符;\d 的补集 \w:匹配任意基本拉丁字母表中的字母和数字,以及下划线;等价于 [A-Za-z0-9_] \W:匹配任意非基本拉丁字母表中的字母和数字...,以及下划线;\w 的补集 \s:匹配一个空白符,包括空格、制表符、换页符、换行符和其他Unicode空格 \S:匹配一个非空白符;\s的补集 \b:匹配一个零宽单词边界,如一个字母与一个空格之间;例如...比如,/^A/ 不匹配 "an Apple" 中的 "A",但匹配 "An apple" 中的"A" $:匹配输入的结尾。...比如,/t$/ 不匹配 "eater" 中的 "t",但匹配 "eat" 中的 "t"。
”修饰符 /y 修饰符 /y 只将正则表达式的每个匹配锚定到前一个匹配的末尾 简单的说,这主要与正则表达式对象上的 lastIndex 属性有关 -- 其与 /g 或 /y 的搭配,会产生不同的效果。...在不设置修饰符,或只设置了 /g 修饰符的情况下,只要目标字符串(或上一次匹配的剩余部分)中存在匹配就可以。...本来 JS 允许采用 \uxxxx 形式表示一个常用的 unicode 字符,其中的 4 个十六进制数字表示字符的 unicode 码点: console.log("\u0061"); // "a" 同时...,分别表示“包含”和“不包含” 从目的和形式上这很类似于用 \s 来匹配空格等 whitespace,而 \p{} 和 \P{} 花括号中的部分称为 "unicode 字符属性"(Unicode character...一个唯一的名称,由大写字母、数字、连字符、空格组成,如: A: Name = LATIN CAPITAL LETTER A ?
领取专属 10元无门槛券
手把手带您无忧上云