转义

python 正则表达式特殊字符

别说谁变了你拦得住时间么 提交于 2019-11-30 06:07:35
字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'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" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+

对JSON.parse()中存在转义字符的解决以及js中替换函数replace()的认识

瘦欲@ 提交于 2019-11-30 05:24:47
在工作中,遇到对页面数据进行转存json格式数据后存储在数据库中.然而在显示数据时遇到无法显示json中的数据,产生的bug 问题抛出: 1.首先认识下,在JSON.parse()将后台传过来的字符串数据转存对象,遇到字符串中带有转义字符.然而JSON.parse()对转义字的符执行过程其实经历了两次转义,具体如下: 一次是字符串本身的转义: '{"test": "这是一个对象, 里面有 \\"test\\" 字段"}' 被转换成 '{"test": "这是一个对象, 里面有 \"test\" 字段"}' (可以直接在浏览器的命令行输入这段字符串) 一次是字符串转对象时的转义: 因为已经被转换成了 '{"test": "这是一个对象, 里面有 \"test\" 字段"}' "\"会被认为是 """的转义符,就会正确的转成对象。 而当只有一个"\"的时候,到字符串转对象的时候, test 字段值里就有两对双引号,就会报错。 又去查了下 ES5 规范中的 parse 方法: 第一步应该是对应字符串本身的转义 第二步则对应字符串转对象时的转义 也就是说:如果字符串中存在"\",那么我们需要写成"\\\\"; 因此,我们需要将字符串中"\"替换成"\\\\",于是,就需要使用js中的replaceAll()函数,而在js中不存在replaceAll()函数,那么需要我们自定义

Linux课程学习 第四课

自作多情 提交于 2019-11-30 03:37:54
学习必须如蜜蜂一样,采过许多花,这才能酿出蜜来 这月事比较多,每课的笔记都会慢慢补回来的,做事得有始有终    在网络上,人们越来越倾向于传输压缩格式的文件,原因是压缩文件体积小,在网速相 同的情况下,传输时间短。下面将学习如何在 Linux 系统中对文件进行打包压缩与解压,以 及让用户基于关键词在文本文件中搜索相匹配的信息、在整个文件系统中基于指定的名称或 属性搜索特定文件。本节虽然只有 3 条命令,但是其功能都比较复杂而且参数很多,因此放 到了本章最后讲解 第二章 新手必须掌握的Linux命令 8.打包压缩与搜索命令 tar  命令用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]” grep   命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]” find  命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作” 第三章  管道符、重定向与环境变量 1.输入输出重定向 标准输入重定向(STDIN,文件描述符为 0):默认从键盘输入,也可从其他文件或命令中输入 标准输出重定向(STDOUT,文件描述符为 1):默认输出到屏幕 错误输出重定向(STDERR,文件描述符为 2):默认输出到屏幕 4.常用的转义字符 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串 单引号('')

正则表达式全集、常用正则表达式

流过昼夜 提交于 2019-11-30 03:28:36
表达式全集 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“ 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+

转义字符\\

那年仲夏 提交于 2019-11-30 02:20:51
转义字符 \ 可以转义很多字符,比如 \n 表示换行, \t 表示制表符,字符 \ 本身也要转义,所以 \\ 表示的字符就是 \ ,可以在Python的交互式命令行用 print() 打印字符串看看: >>> print('I\'m ok.') I'm ok. >>> print('I\'m learning\nPython.') I'm learning Python. >>> print('\\\n\\') \ \ 如果字符串里面有很多字符都需要转义,就需要加很多 \ ,为了简化,Python还允许用 r'' 表示 '' 内部的字符串默认不转义,可以自己试试: >>> print('\\\t\\') \ \ >>> print(r'\\\t\\') \\\t\\ 如果字符串内部有很多换行,用 \n 写在一行里不好阅读,为了简化,Python允许用 '''...''' 的格式表示多行内容,可以自己试试: >>> print('''line1 ... line2 ... line3''') line1 line2 line3 上面是在交互式命令行内输入,注意在输入多行内容时,提示符由 >>> 变为 ... ,提示你可以接着上一行输入,注意 ... 是提示符,不是代码的一部分: ┌────────────────────────────────────────────────────

python3(一)

泄露秘密 提交于 2019-11-30 01:15:20
print('test', '怎么自动建了这么多目录', 'aaaaaaa') #test 怎么自动建了这么多目录 aaaaaaa 注释# # ---------------------------------------a = 100if a >= 0: print(a) #100else: print(-a)# --------------------------------------- 转义 print('I\'m ok.') # I'm ok. # r''表示''内部的字符串默认不转义 print(r'\\\t\\') # \\\t\\ # 换行 print('ab \nvvcc') # '''...'''的格式表示多行内容 print('''line1 line2 line3''') 执行结果: line1line2line3 # 布尔值和Java一样不做验证了# 空值None是一个特殊的空值# 变量 变量名必须是大小写英文、数字和_的组合,且不能用数字开头,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量a = 123 # a是整数 123print(a)a = 'ABC' # a变为字符串 ABCprint(a)# 对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的

PHP开发绝对不能违背的安全铁则

好久不见. 提交于 2019-11-29 23:40:25
  作为PHP程序员,特别是新手,对于互联网的险恶总是知道的太少,对于外部的入侵有很多时候是素手无策的,他们根本不知道黑客是如何入侵的、提交入侵、上传漏洞、sql 注入、跨脚本攻击等等。作为最基本的防范你需要注意你的外部提交,做好第一面安全机制处理防火墙。   规则 1:绝不要信任外部数据或输入   关于Web应用程序安全性,必须认识到的第一件事是不应该信任外部数据。外部数据(outside data) 包括不是由程序员在PHP代码中直接输入的任何数据。在采取措施确保安全之前,来自任何其他来源(比如 GET 变量、表单 POST、数据库、配置文件、会话变量或 Cookie)的任何数据都是不可信任的。   例如,下面的数据元素可以被认为是安全的,因为它们是在PHP中设置的。 清单 1. 安全无暇的代码 $myUsername = ‘tmyer’; $arrayarrayUsers = array(‘tmyer’, ‘tom’, ‘tommy’); define(“GREETING”, ‘Hello there’ . $myUsername); ?>   但是,下面的数据元素都是有瑕疵的。 清单 2. 不安全、有瑕疵的代码 $myUsername = $_POST['username']; //tainted! $arrayarrayUsers = array($myUsername,

magic_quotes_gpc和safe_mode

◇◆丶佛笑我妖孽 提交于 2019-11-29 15:12:37
去官方看了下,用红色的block特别注明了,php5.3已经不推荐使用这个东东了,在 PHP6 中已经将其废弃: magic_quotes_gpc boolean Warning This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged. magic_quotes_gpc=on 的配置下,插入数据时,Magic quotes 会自动将数据转义。 可以从一定程度上,让初学者带离脚本的安全风险。例如在没有任何保护措施的代码下,开启了 Magic quotes 后会少很多的风险,例如注入问题。以前看一些安全方面的文章,入侵者总是喜欢选择magic_quotes_gpc=off的站下手,如果看到其magic_quotes_gpc=on ,估计就不会弄这个站了。 那么官方为什么要废除这个东东呢?搜索了一下,看到一个写得相当详细和全面的帖子,下面将其中提到的几个原因帖出: 为什么不使用 Magic quotes 可移植性 无论此功能是否开启,它都会影响脚本的可移植性,因为它影响我们后续过滤数据的操作。 性能问题 在获取所有的外部数据之前都会被转义,这无疑会增加运行时的花销(而且并不是所有的数据都需要转义)。

转义字符引发的血案(hive、bash)

帅比萌擦擦* 提交于 2019-11-29 13:48:26
bash程序: test.sh #!/bin/bash hive -e "select (split('p?a?b?c?ppp?hhh','?'))[4] from a limit 1;" 报错: Caused by: java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0 修改成: test.sh #!/bin/bash hive -e "select (split('p?a?b?c?ppp?hhh','\\\\?'))[4] from a limit 1;" 正确运行原因: split的第二个参数是一个regex,而‘?’有特殊的意义(? 零次或一次匹配前面的字符或子表达式),因此需要被转义。 在hive中,'\'本身就代表转义字符,因此'\'需要被转义 在bash中,'\'本身就代表转义字符,因此'\'需要被转义 附录: 正则表达式需要转义的特殊字符 注释 $ 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,那么 $ 还匹配 \n 或 \r 前面的位置。若要匹配 $ 字符本身,请使用 \$。 ( ) 标记子表达式的开始和结束。可以捕获子表达式以供以后使用。若要匹配这两个字符,请使用 \( 和 \)。 *