正则

js正则函数

天大地大妈咪最大 提交于 2020-03-03 07:51:33
js的正则函数主要有有replace,match,test,search,exec。 首先对文中的变量进行说明:   rgExp为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。   /i (忽略大小写)   /g (全文查找出现的所有匹配字符) (1)match 方法   使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回,如果未能匹配到,则返回null。   stringObj.match(rgExp) 例:   var str = "ThIS isn't me";   var reg = /is/ig;   var ret = str.match(reg);      console.log(ret); //["IS", "is"] (2)replace 方法   返回根据正则表达式进行文字替换后的字符串的复制,原字符串不变。    stringObj.replace(rgExp, replacement); 例: var str = "i love china!";   var pattern = /i/g;   var ret = str.replace(pattern, "I"); alert(ret); //I love chIna!   ECMAScript v3 规定,replace()

正则API

安稳与你 提交于 2020-03-03 05:50:11
正则表达式:规定字符串中字符出现规律的公式 如果备选字符列表中个别字符之间是连续的,可用-省略中间的字符。比如: 匹配1位数字:   [0-9] 匹配1位小写字母 : [a-z] 匹配1位大写字母 : [A-Z] 匹配1位字母 :   [a-zA-Z] 匹配1位汉字: [\u4e00-\u9fa5] 字符集开头,使用^表示除了xx,但除xx外一切字符都行!范围太大了。 预定义字符集: 对常用字符集的简化标识 [0-9] 一位数字 :           \d [0-9A-Za-z_] 一位字母,数字或下划线: \w 换行,空格,tab 一位空字符 : \s 除回车换行外,任意一个字符     . 量词:规定字符集出现次数的规则 用于字符集之后,默认修饰相邻的前一个字符集 有明确数量的量词: 最少m次,最多n次   : {m,n} 最少m次,多了不限   : {m,} 必须m次        : {m} 没有明确数量的量词: 可有可无,最多1次    ? 可有可无,多了不限    * 至少一次,多了不限   + 正则中如果正文和正则保留字冲突,也可用\转义 5. 分组和选择: 选择:或 正则1|正则2 只要满足任意一个正则即可 分组: () ()扩起的子表达式称为一组 数量词放在()之后,则修改一组出现的次数 如: (去){2} *****分组编号: 正则中每个()

正则匹配中文英文字符、数据及标点

妖精的绣舞 提交于 2020-03-02 11:19:32
/^([\p{Han}\p{P}A-Za-z0-9])*$/u 其中 \p{Han}表示utf-8编码中的所有中文字符, \p{P}表示中英文标点, A-Z表示大写字母, a-z表示小写英文字母, 0-9表示数字, *表示>=0, /u 表示按unicode(utf-8)匹配(主要针对多字节比如汉字) 匹配中文标点符号: [\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b] 该表达式可以识别出: 。 ; , : “ ”( ) 、 ? 《 》 这些标点符号。 \w匹配的仅仅是中文,数字,字母 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 来源: oschina 链接: https://my.oschina.net/u/3568600/blog/3184957

c# 正则 replace 高级用法

不打扰是莪最后的温柔 提交于 2020-03-02 07:11:31
需求: 替换网页上所有a标签中的链接. 如:<a href="http://www.asiafinance.cn" target="_blank">亚洲财经</a>, 替换成<a href="http://www.baidu.com/?to=http://www.asiafinance.cn" target="_blank">亚洲财经</a> 刚开始的做法是用Regex.Matches方法找出a标签中所有的链接,然后循环Regex.Replace替换, 因为是整个页面的全局替换, 所以,第一个链接替换了,第二个又来一遍,直到最后一个结束. http://tactic.asiafinance.cn/ http://tactic.asiafinance.cn/list/list_czzn.shtml ,替换第一个的时候,把第二个那个链接也替换,后来就乱了. 这里解决方法还是Regex.Replace , 我把2个方法的代码都贴出来. 第一种 string content = "网站内容"; string pattern = @"<a[\s\S]*?href=(""(?<href>[^""]*)""|’(?<href>[^’]*)’|(?<href>[^>\s]*))[^>]*?>"; MatchCollection mc = Regex.Matches(content,pattern

正则之零宽断言

我们两清 提交于 2020-03-02 04:27:33
1.什么是零宽断言: 零宽断言正如它的名字一样,是一种 零宽度的匹配 . 它匹配到的内容不会保存到匹配结果中去, 最终匹配结果只是一个 位置 而已. 2.何时使用零宽断言: 在使用正则表示式时, 有时, 我们需要捕获的内容前后必须是特定内容, 但又不捕获这些特定内容的时候, 零宽断言就起到作用了 3.如何使用零宽断言: 零宽断言的作用是 给指定位置添加一个限定条件 , 用来规定此位置之前或者之后的字符必须满足限定条件, 才能使正则中的表达式匹配成功. 4.零宽断言分类: (?=exp) 也叫 零宽度正预测先行断言,它断言此位置的 后面能匹配 表达式exp (?!exp) 也叫 零宽度负预测先行断言,断言此位置的 后面不能匹配 表达式exp (?<=exp) 也叫 零宽度正回顾后发断言,它断言此位置的 前面能匹配 表达式exp (?<!exp) 也叫 零宽度负回顾后发断言来断言此位置的 前面不能匹配 表达式exp 5.例子: " ab Cabcab, " /ab( ?=[A-Z])/ 匹配后面跟随任意一个大写字母的字符串”ab”, 最终匹配结果” ab ” (大写字母C前的"ab") /ab( ?![A-Z])/ 匹配后面不跟随任意一个大写字母的字符串”ab”, 最终匹配结果”ab””ab”(小写字母c前的"ab",和",“前面的"ab”) 6.实际应用: 千分符和密码强度 (1

PHP preg_replace()正则替换字符串

馋奶兔 提交于 2020-03-02 04:22:04
PHP preg_replace()正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素。 用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的。 比如模版引擎解析模版、垃圾敏感信息过滤等等。 一般这种情况,我们用正则按我们的规则去匹配preg_match、替换preg_replace。 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少。 根据前面说的,两种场景:统计分析,用匹配;处理用替换。 PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素。 preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数) 大部分语言的正则表达式都是差不多的,不过也有细微的差异。 PHP 正则表达式 正则字符 正则解释 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符“n”。“\\n”匹配一个换行符。序列“\\”匹配“\”而“\(”则匹配“(”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 $

正则替换replace中$1的用法以及常用正则

為{幸葍}努か 提交于 2020-03-02 04:21:36
一、 repalce定义 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 stringObject.replace(regexp/substr,replacement); 参数一:必需,规定的字符串或者正则表达式 参数二:必需,一个字符串值。规定了替换文本或生成替换文本的函数。 !!!replacement 中的 $ 字符具有特定的含义。详情见W3C    二、有$1,$2...的例子 //把 "Doe, John" 转换为 "John Doe" 的形式: var str = "Doe, John"; str.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); 说明:$1,$2上就是按顺序对应小括号里面的小正则 捕获到的内容。       三,第二个参数是函数 把字符串中所有单词的首字母都转换为大写: var str = 'aaa bbb ccc'; uw=str.replace(/\b\w+\b/g, function(word){ return word.substring(0,1).toUpperCase()+word.substring(1);} ); 说明:匹配一次就执行一次函数,匹配的内容作为参数 //把数字转成对应的汉子 var ary=["一","二","三","四","五","六"] "123456"

php正则替换函数-----preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

江枫思渺然 提交于 2020-03-02 04:19:30
preg_replace — 执行一个正则表达式的搜索和替换 说明 mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) 搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。 参数 pattern 要搜索的模式。可以使一个字符串或字符串数组。 可以使用一些 PCRE修饰符 。 replacement 用于替换的字符串或字符串数组。如果这个参数是一个字符串,并且 pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。如果 pattern 和 replacement 都是数组,每个 pattern 使用 replacement 中对应的 元素进行替换。如果 replacement 中的元素比 pattern 中的少, 多出来的 pattern 使用空字符串进行替换。 replacement 中可以包含后向引用 \\ n 或 $ n ,语法上首选后者。 每个 这样的引用将被匹配到的第 n个捕获子组捕获到的文本替换。 n 可以是0-99, \\0 和 $0 代表完整的模式匹配文本。 捕获子组的序号计数方式为:代表捕获子组的左括号从左到右, 从1开始数。如果要在

常用正则表达式(?i)忽略字母的大小写!

╄→гoц情女王★ 提交于 2020-03-02 02:20:54
1 。 ^ /d + $   // 匹配非负整数(正整数 + 0) 2 。 ^ [ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] * $   // 匹配正整数 3 。 ^ (( - /d + ) | ( 0 + ))$   // 匹配非正整数(负整数 + 0) 4 。 ^- [ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] * $   // 匹配负整数 5 。 ^-? /d + $     // 匹配整数 6 。 ^ /d + (/./d + ) ? $   // 匹配非负浮点数(正浮点数 + 0) 7 。 ^ (([ 0 - 9 ] + /.[ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] * ) | ([ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] * /.[ 0 - 9 ] + ) | ([ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] * ))$   // 匹配正浮点数 8 。 ^ (( - /d + (/./d + ) ? ) | ( 0 + (/. 0 + ) ? ))$   // 匹配非正浮点数(负浮点数 + 0) 9 。 ^ ( - (([ 0 - 9 ] + /.[ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] * ) | ([ 0 - 9 ] * [ 1 - 9 ][ 0 - 9 ] *

从零开始学正则(五)

白昼怎懂夜的黑 提交于 2020-03-01 23:08:00
壹 ❀ 引 我在 从零开始学正则(四) 一文中讲述了正则匹配的回溯法,以正则匹配过程引出了正则书写也会存在性能问题,并阐述了贪婪匹配,惰性匹配以及分支匹配时与回溯的中中关系。当然,对于初学者而言除了能写出正则以外,能读懂任意一段正则也是非常重要的。那么本篇文章主要针对正则表达式拆分展开分析,相信大家在阅读之后再面对各种变态长度的正则时,都能有理可据,化繁为简的拆分理解。 说在前面,正则学习系列文章均为我阅读 老姚《JavaScript正则迷你书》 的读书笔记,文中所有正则图解均使用 regulex 制作。那么本文开始! 贰 ❀ 正则的解构与操作符 编程语言一般都有操作符( 百科 ),但只要说到操作符就不得不讨论操作符的优先级,因为一堆操作符在一起,系统自己也得知道谁该先执行,谁要后执行。 那么正则中的操作符是什么呢?正则中的操作符体现在正则结构中,而结构又由特殊字符与普通字符构成。 JavaScript中的正则结构大致有这些: 字符字面量、字符组、量词、锚、分组、分支、反向引用 。也就是前几章节讲过的知识点, 我们简单复习一遍: 字符字面量: 当我们具体匹配某个字符时所写的正则字段,比如a匹配字段“a”,123匹配字段“123”,\. 匹配小数点等。 字符组: 当某个位置的字符可能是多种情况之一时,比如匹配任意一个数字,可以使用字符组[0-9],可简写为\d。除此之外还有反义字符组