正则表达式

正则表达式匹配IP地址

我怕爱的太早我们不能终老 提交于 2020-04-01 03:14:58
项目框架把JavaScript脚本存入数据库,展示页面的时候从数据库读取字段拼接页面。正则表达式取出来[\]都变成了双反斜杠【\\】, A写法改成B写法后问题解决。因为数据库是把整个js脚本当成字符串存储的,这种时候,正则表达式不能写成A的方式,要改成B就可以了。 A:pattern = /^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$/g; B:pattern =new RegExp('^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$'); <html> <head></head> <body onload='test();'> <script> function test2(){ var ipstr='1.1.1.1'; var array=[]; array.push(ipstr); var pattern =new RegExp('^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])){3}$'); /

Linux三剑客 grep、awk、seed

佐手、 提交于 2020-03-30 19:39:05
简介 grep:适合单纯的查找或匹配文本 sed:适合编辑文本 awk:适合格式化文本,对文本进行复杂的格式化处理 1.grep   grep -help   【options】   -c:只输出匹配行的计数   -i:不区分大小写   -h:查询多文件是不显示文件名   -l:查询多文件时只输出包含匹配字符的文件名   -m:显示匹配行及行号   -s:不显示不存在或无匹配文本的错误信息   -v:显示不包含匹配文本的所有行   -color=auto:可以将找到的关键词部分加上颜色的显示   【pattern】正则参数含义   \:忽略正则表达式中特殊字符的原有含义   ^:匹配正则表达式的开始   $:匹配正则表达式的结束   \<:从匹配正则表达式的行开始   \>:到正则表达式的行结束   []:单个字符ex:[a]即a符合   [-]:范围ex:[a-c],即a,b,c符合   .:所有单个字符   *:有字符,长度可以为0   【简单使用】匹配的是当前文件夹下   grep ‘test’ d* 显示所有以d开头的文件中包含test的行   grep ‘test’ aa bb cc 显示在aa,bb,cc文件中匹配test的行   grep ‘[a-z]\{5\}’ aa 显示在aa文件中所有包含每个字符串至少有连续5个小写字符的字符串的行   grep 'w\(es\

int preg_match( string pattern

假如想象 提交于 2020-03-30 13:04:39
preg_match -- 进行 正则表达式 匹配。并且只匹配一次,注意与 preg_match _all区别。 int preg_match ( string pattern, string subject [, array matches [, int flags ]] ) 在 subjec t 字符串中搜索与 pattern 给出的 正则表达式 相匹配的内容。 如果提供了 matches ,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本, $matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。 flags 可以是下列标记: PREG_OFFSET_CAPTURE 如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串 偏移量 。注意这改变了返回的 数组 的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其偏移量。本标记自PHP 4.3.0 起可用。 flags 参数来自 PHP 4.3.0 起可用。 preg_match() 返回 pattern 所匹配的 次数 。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。如果出错 preg_match() 返回FALS E 如果你仅仅想要检查一个字符串是否包含另外一个字符串, 不要使用preg_match

正则表达式是常见常忘,所以还是记下来比较保险,于是就有了这篇笔记。

China☆狼群 提交于 2020-03-30 10:12:08
Regular Expressions (1) ---- What is Regular Expressions? 正则表达式是常见常忘,所以还是记下来比较保险,于是就有了这篇笔记。 希望对大家会有所帮助。J 1.什么是正则表达式 2 2.正则表达式的起源 2 3. 正则表达式使用祥解 3 3.1基本语法 3 3.1.1普通字符 3 3.1.2非打印字符 3 3.1.3特殊字符 3 3.1.4字符集 4 3.1.5在字符集中使用元字符 5 3.1.6预定义字符集 5 3.1.7 限定符 6 3.1.8定位符 6 3.1.9 “.”元字符 7 3.1.10用 “|”表示选择 8 3.1.11用 “()”表示分组 8 3.1.12 “?”的补充说明 8 3.1.13给正则表达式添加注释 8 3.1.14操作符的运算优先级 8 3.2 高级话题 9 3.2.1反向引用 9 3.2.2在正则表达式中指定模式option 9 3.2.3 Lookaround断言 10 4. 正则表达式基本语法索引 11 5. 正则表达式高级语法索引 15 6. 参考资料 17 7. 推荐工具 17 1.什么是正则表达式 简单的说,正则表达式是一种可以用于文字模式匹配和替换的强有力的工具。是由一系列普通字符和特殊字符组成的能明确描述文本字符串的文字匹配模式。 正则表达式并非一门专用语言,但也可以看作是一种语言

PHP 正则判断中文 UTF-8 & GBK

半城伤御伤魂 提交于 2020-03-30 09:45:21
UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的。比如: var str = "php编程"; if (/^[/u4e00-/u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); } else{ alert("该字符串不全部是中文"); } php中,是用/x表示十六进制数据的。于是,变换成如下的代码: $str = "php编程"; if (preg_match("/^[/x4e00-/x9fa5]+$/",$str)) { print("该字符串全部是中文"); } else { print("该字符串不全部是中文"); } 貌似不报错了,判断的结果也正确,不过把$str换成“编程”两字,结果却还是显示“该字符串不全部是中文”,看来这样的判断还是不够准确。重要:查阅了<精通正则表达式>发现,对于[/x4e00-/x9fa5]这块东西,自己做一个强化的解释 php的正则中, [/x4e00-/x9fa5],其实就是 字符和字符组的概念, /x{hex},表达一个16进制数, 需要注意的是hex 可以是1-2位的,也可以是4位的,但是如果是4位的必须加上大括号, 同时,如果是大于x{FF}的hex,必须和u 修饰符连用,不然会非法出错 网上只能找到匹配全角字符的正则: ^[/x80-/xff]*^/ ,这里可以不加大括号 [

linux---正则表达式

牧云@^-^@ 提交于 2020-03-30 08:27:20
三. 正则表达式基本语法描述 : Linux Shell环境下提供了两种正则表达式规则,一个是基本正则表达式(BRE),另一个是扩展正则表达式(ERE)。 下面是这两种表达式的语法列表,需要注意的是,如果没有明确指出的Meta字符,其将可同时用于BRE和ERE,否则将尽适用于指定的模式。 正则元字符 模式含义 用例 \ 通常用于关闭其后续字符的特殊意义,恢复其原意。 \(...\),这里的括号仅仅表示括号。 . 匹配任何单个字符。 a.b,将匹配abb、acb等 * 匹配它之前的0-n个的单个字符。 a*b,将匹配ab、aab、aaab等。 ^ 匹配紧接着的正则表达式,在行的起始处。 ^ab,将匹配abc、abd等,但是不匹配cab。 $ 匹配紧接着的正则表达式,在行的结尾处。 ab$,将匹配ab、cab等,但是不匹配abc。 [...] 方 括号表达式,匹配其内部任何字符。其中-表示连续字符的范围,^符号置于方括号里第一个字符则有反向的含义,即匹配不在列表内(方括号)的任何字符。如果 想让]和-表示其原意,需要将其放置在方括号的首字符位置,如[]ab]或[-ab],如这两个字符同时存在,则将]放置在首字符位置,-放置在最尾部, 如[]ab-]。 [a-bA-Z0-9!]表示所有的大小写字母,数字和感叹号。[^abc]表示a、b、c之外的所有字符。[Tt]om

密码等级验证

折月煮酒 提交于 2020-03-29 06:58:04
当用户登录网站时,一般要求用户提供登录该网站的用户名称和密码。从某种意义上说,密码的复杂程度越高,用户的信息安全性越高。因此,很多网站在注册用户信息或修改用户密码时,往往会提供一个密码强度的说明,从而提醒用户使用高强度的密码。 目前来说,密码字符可以分为 3 种:数字、字母和特殊字符(即除数字、字母之外的字符)。用户密码包含上述 3 种字符种的种类越多,密码的安全性越高。用户密码只含其中一种的安全性是最低的,如 123455 、 abcdef 等。其次是含上述 2 种字符的密码,如 123abc 、 123!@# 等。密码强度最好的是:包含上述 3 种字符,如 123QAZ!@# 。 注意:本小节中的特殊字符包括 ` 、 - 、 = 、 \ 、 [ 、 ] 、 ; 、 ' 、 , 、 . 、 / 、 ~ 、 ! 、 @ 、 # 、 $ 、 % 、 ^ 、 & 、 * 、 ( 、 ) 、 _ 、 + 、 | 、 ? 、 > 、 < 、 " 、 : 、 { 和 } 字符。   1 .只包含数字的密码验证   如果密码中只包含数字,那么该密码是非常简单。当然,它的安全性也相对较差。以下正则表达式能够验证只包含数字的密码。 \d+ ( 68 ) 该类型密码的安全性随着密码的长度增加而增加。密码长度越大,它的安全性越高。以下正则表达式能够验证长度至少为 6 的、只包含数字的密码。 \d{6,

C#正则表达式

天大地大妈咪最大 提交于 2020-03-28 21:16:30
表达式 匹配 /^\s*$/ 匹配空行。 /\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。 /<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ 匹配 HTML 标记。 下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为: 字符 说明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(”。 ^ 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\r”之后的位置匹配。 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与“\n”或“\r”之前的位置匹配。 * 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配“z”和“zoo”。* 等效于 {0,}。 + 一次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。+ 等效于 {1,}。 ? 零次或一次匹配前面的字符或子表达式。例如,“do(es)?”匹配“do”或“does”中的“do”。? 等效于 {0,1}。 { n } n 是非负整数。正好匹配 n 次。例如,“o{2}”与“Bob”中的“o”不匹配,但与

常用正则表达式

廉价感情. 提交于 2020-03-28 16:17:43
匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 匹配首尾空白字符的正则表达式:^\s*|\s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注:表单验证时很实用 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 评注:匹配形式如 0511-4405222 或 021-87888822

Python正则表达式指南

限于喜欢 提交于 2020-03-28 05:11:40
本文转自 AstralWind 的博客: Python正则表达式指南 特来收藏 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。 下图展示了使用正则表达式进行匹配的流程: 正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。如果表达式中有量词或边界,这个过程会稍微有一些不同,但也是很好理解的,看下图中的示例以及自己多使用几次就能明白。 下图列出了Python支持的正则表达式元字符和语法: 1.2. 数量词的贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?"