转义

正则表达式 - 转义字符

久未见 提交于 2020-02-08 05:24:16
如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls \*.txt。正则表达式有以下特殊字符。需要转义 特别字符 说明 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 \$。 ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 . 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。 [ ] 标记一个中括号表达式的开始。要匹配 [,请使用 \[。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 \ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配换行符。序列 ‘\\' 匹配 “\”,而 ‘\(' 则匹配 “(”。 ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。 { } 标记限定符表达式的开始。要匹配 {,请使用 \{。 | 指明两项之间的一个选择。要匹配 |,请使用

正则表达式显示中括号[]

主宰稳场 提交于 2020-02-08 05:23:38
调皮的前后中括号([])正则匹配 在正则表达式中,前中括号 [ 属于特殊字符,要匹配它,需要转义,即加上 \;而后中括号 ] 不属于特殊字符,不必加转义字符。 var pattern = "(\[{1})"; // 错误,正确应该为:([\[]{1}) var flag = "gi"; var reg = new RegExp(pattern, flag); reg.exec("<>[]"); alert(RegExp.$1); 以上代码是不正确的,错误在 pattern,应该写作 ([[]{1})。即:对于前中括号 [,除了转义字符,还应该用中括号括起来。 似乎不稀奇,稀奇在对后括号 ] 的处理上。 var pattern = "([\]]{1})"; // 错误,正确应该为:(]{1}) var flag = "gi"; var reg = new RegExp(pattern, flag); reg.exec("<>[]"); alert(RegExp.$1); 以上代码在 IE 中是正确的,但在 Chrome 中,它确得不到我们想要的结果,错误同样在 pattern,应该写作 (]{1})。即:对于后中括号 ],应该直接写,既不能用转义字符,也不能用中括号括起来。 资料:正则表达式中的特殊字符(需要转义) ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用

正则表达式

自作多情 提交于 2020-02-07 06:54:04
表达式全集 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。串行“\”匹配“”而“(”则匹配“(”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo 能匹配“z”以及“zoo”。 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。 {n} n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 {n,} n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。 {n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1

正则表达式 - 元字符

拥有回忆 提交于 2020-02-07 00:20:26
正则表达式 - 元字符 下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为: 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'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',但是能匹配 "food" 中的两个 o。 {n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob"

正则表达式-元字符

拥有回忆 提交于 2020-02-07 00:17:36
以前的笔记感觉没有这个 菜鸟教程 里面的东西描述得详细,直接拿过来了。讲到C#操作正则的时候回顾写一遍,再发布教程 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。 {n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 {n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配

正则表达式实践

与世无争的帅哥 提交于 2020-02-06 11:54:14
正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScript、还是后端的Java、c#。他们都提供相应的接口/函数支持正则表达式。 很神奇的是:无论你大学选择哪一门计算机语言,都没有关于正则表达式的课程给你修,在你学会正则之前,你只能看着那些正则大师们,写了一串外星文似的字符串,替代了你用一大篇幅的if else代码来做一些数据校验。 既然喜欢,那就动手学呗,可当你百度出一一堆相关资料时,你发现无一不例外的枯燥至极,难以学习。 本文旨在用最通俗的语言讲述最枯燥的基本知识! # 正则基础知识点 1、元字符 万物皆有缘,正则也是如此,元字符是构造正则表达式的一种基本元素。 我们先来记几个常用的元字符: 元字符说明.匹配除换行符以外的任意字符w匹配字母或数字或下划线或汉字s匹配任意的空白符d匹配数字匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束 有了元字符之后,我们就可以利用这些元字符来写一些简单的正则表达式了, 比如: 匹配有abc开头的字符串:abc或者^abc 匹配8位数字的QQ号码:^dddddddd$ 匹配1开头11位数字的手机号码:^1dddddddddd$ 2、重复限定符 有了元字符就可以写不少的正则表达式了,但细心的你们可能会发现:别人写的正则简洁明了,而不理君写的正则一堆乱七八糟而且重复的元字符组成的。正则没提供办法处理这些重复的元字符吗?

htmlentities,mysql_real_escape_string,addslashes

淺唱寂寞╮ 提交于 2020-02-06 00:23:44
另外一个Web应用安全的基础是对输出进行转义或对特殊字符进行编码,以保证原意不变。例如,O'Reilly在传送给MySQL数据库前需要转义成O\'Reilly。单引号前的反斜杠代表单引号是数据本身的一部分,而不是并不是它的本义。 我所指的输出转义具体分为三步: l 识别输出 l 输出转义 l 区分已转义与未转义数据 只对已过滤数据进行转义是很有必要的。尽管转义能防止很多常见安全漏洞,但它不能替代输入过滤。被污染数据必须首先过滤然后转义。 在对输出进行转义时,你必须先识别输出。通常,这要比识别输入简单得多,因为它依赖于你所进行的动作。例如,识别到客户端的输出时,你可以在代码中查找下列语句: echo print printf <?= 作为一项应用的开发者,你必须知道每一个向外部系统输出的地方。它们构成了输出。 象过滤一样,转义过程在依情形的不同而不同。过滤对于不同类型的数据处理方法也是不同的,转义也是根据你传输信息到不同的系统而采用不同的方法。 对于一些常见的输出目标(包括客户端、数据库和URL)的转义,PHP中有内置函数可用。如果你要写一个自己算法,做到万无一失很重要。需要找到在外系统中特殊字符的可靠和完整的列表,以及它们的表示方式,这样数据是被保留下来而不是转译了。 最常见的输出目标是客户机,使用htmlentities( )在数据发出前进行转义是最好的方法。与其它字符串函数一样

Python学习笔记(3)

拈花ヽ惹草 提交于 2020-02-04 13:24:31
学习主题:变量和字符串 学习日期:2020-02-04 Python 版本:3.7.4 变量 使用变量之前先赋一个初始值。 变量命名可以用字母,数字,下划线 这三个单独或者组合表示。但是不能以数字开头。这和其他的语言对变量命名规范一致。 区别大小写,A和a表示的不一样。 字符串 转义符号–反斜杠的使用 比如说打印出let’s go.这个里面包括‘,这怎么打印? 使用了 反斜杠,但是一般的路径中又存在反斜杠,要打印这个路径,怎么办? 那怎么办呢? 使用反斜杠为反斜杠自身进行转义 那么,如果对于一个路径是有很多反斜杠呢。一个个都再添加一个反斜杠还是很复杂的,怎么办呢? str = 'C:\Program Files\Common Files\Microsoft Shared\Help' ; print ( str ) ; # 这两句代码是有问题的,无法执行 str = 'C:\\Program Files\\Common Files\\Microsoft Shared\\Help' ; # 每一个反斜杠后边都加一个反斜杠,对自身转义 print ( str ) ; 还有一个简单的方法,就是使用原始字符串,只需要在字符串前面加入一个英文字母r即可。 str = r 'C:\Program Files\Common Files\Microsoft Shared\Help' ;

转义字符

戏子无情 提交于 2020-02-04 09:52:50
不是所有字符都有转义的,空格直接就敲空格,或者使用ASCII码值赋值为32 空格没有 转义字符 合法 转义字符 如下: \a 响铃(BEL) \b 退格(BS) \f 换页(FF) \n 换行(LF) \r 回车(CR) \t 水平制表(HT) \v 垂直制表(VT) 0 \\ 反斜杠 \? 问号字符 \' 单引号字符 \" 双引号字符 \0 空字符(NULL) \ddd 任意字符 三位八进制 \xhh 任意字符 二位十六进制 来源: CSDN 作者: HOLD ON! 链接: https://blog.csdn.net/cxu123321/article/details/103835258