转义

正则

孤街浪徒 提交于 2019-11-29 00:44:54
正则表达式 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同。 流程: 正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。 如果表达式中有量词或边界,这个过程会稍微有一些不同。 语法表 1.2. 数量词的贪婪模式与非贪婪模式 正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。 1.3. 反斜杠的困扰 与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠

ETL必知必会----正则

我是研究僧i 提交于 2019-11-29 00:39:30
ETL简介 ETL(Extraction-Transformation-Loading)中文意思就是数据清洗(数据抽取、转换和加载),通俗的说法就是从数据源抽取数据出来,进行清洗加工转换,然后加载到定义好的数据仓库模型中去。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节,其设计的好坏影响生成数据的质量,直接关系到BI项目的成败。这个处理过程有很多方法,包括清洗工具的使用,以及HQL自带的函数,自定义udf函数,正则表达式等,其中正则表达式使用的非常之多,功能也十分强大. 什么是正则表达式及其功能 正则表达式,又称规则表达式. 正则表达式的英语原文为:Regular Expression,常简写为regex、regexp或RE,正则表达式是计算 机科学的一个概念. 正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本. 刚开始接触正则的人肯定是一头蒙,但实际上正则并不是想象的那么难懂, 像 data(\w)?.dat 这样的正则表达式查找下列名字: 此时我们能找到所有的,如果我们吧 ? 改成 + 则只能匹配到后四个. 例如:该文本有这些内容,我们需要找出文本中的 hello 单词,一般我们都会直接ctrl+f 进行搜索,其实这个搜索的过程就相当于正则的 hello ,当我们只要开头那个hello

再论php 5.3.6以前版本中的PDO SQL注入漏洞问题

点点圈 提交于 2019-11-28 23:10:41
我曾经写一篇《PDO防注入原理分析以及使用PDO的注意事项 》,里面描述到php 5.3.6之前的PDO可能存在SQL注入之问题,并给出了彻底的解决方案,有的朋友给我发电子邮件,对此有疑问,说是在php 5.3.6之前版本中未发现这个漏洞。事实上这个漏洞是存在的,本文再次给出详细的演示代码。 在php 5.3.6以前版本,运行以下代码,即可发现,存在PDO SQL注入问题(可向info表中填充一些数据):<?php $pdo = new PDO("mysql:host=127.0.0.1;dbname=test;charset=gbk","root"); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->query('SET NAMES GBK'); $var = urldecode('%bf%27%20OR%20username%3Dusername%20%23'); $query = "SELECT * FROM info WHERE username = ?"; $stmt = $pdo->prepare($query); $stmt->execute(array($var)); $r = $stmt->fetch(); print_r($r); 而在php 5.3.6以上版本中

&times被转义成x的解决方法

扶醉桌前 提交于 2019-11-28 21:51:31
项目场景:从后台回来的数据要处理成h5代码然后渲染到页面上,结果&times被转义成x。 解决方案:把还有&times字样的字符串转化为文本。 代码如下: <div id="content"></div> <script> var dataArr = [{ "url":"www.aa.com?data={{data}}&timestamp={{timestamp}}" },{ "url":"www.bb.com?data={{data}}&timestamp={{timestamp}}" }]; var nodeStr ='<table>'; for(var i=0; i<dataArr.length; i++){ nodeStr += '<tr><td class="mark">'+ dataArr[i].url +'</td></tr>' } nodeStr += '</table>' $('#content').append(nodeStr); //防止 &times 转义为 x,放在append()方法后 for(var i=0; i<dataArr.length; i++){ var url = dataArr[i].url; $('.mark').eq(i).text(url); }</script> 结果如下: 来源: https://www.cnblogs.com

Python 基础(四):字符串

ぐ巨炮叔叔 提交于 2019-11-28 19:42:46
目录 1 简介 2 基本操作 2.1 访问 2.2 单个字符编码 3 转义符 4 运算符 5 格式化 1 简介 在之前的文章【 Python 基础(一):入门必备知识 】中我们已经提到了:字符串是 Python 的一种数据类型,它可以通过单引号 ' 、双引号 " 、三引号 ''' 或 """ 来定义,本节我们来详细介绍一下。 2 基本操作 2.1 访问 访问单个字符 s = 'Python' # 访问第一个字符 P print ( s [ 0 ] ) 访问范围内字符 s = 'Python' # 访问 yt print ( s [ 1 : 3 ] ) # 访问 Pyt print ( s [ : 3 ] ) # 访问 hon print ( s [ 3 : ] ) 2.2 单个字符编码 Python 使用了 ord() 函数返回单个字符的编码, chr() 函数把编码转成相应字符。如下所示: s = 'A' print ( ord ( s ) ) print ( chr ( 65 ) ) 输出结果: 65 A 3 转义符 之前我们说过可以通过反斜杠 \ 将一行语句分多行显示,其实就是 \ 来转义字符,一些常见的转义字符如下表所示: 转义字符 描述 \ 在行尾使用时,用作续行符 \b 退格(Backspace) \000 空 \n 换行 \v 纵向制表符 \t 横向制表符 \r 回车

(串口通信编程) 开源串口调试助手Common (Com Monitor)

落爺英雄遲暮 提交于 2019-11-28 17:31:41
   最新的文档见这里: http://blog.twofei.com/566/   我写的串口调试助手程序以及源代码.    警告: 请勿将本软件 源代码用于任何商业用途。   其实吧, 我写的这个串口软件绝对比网上流传的一些串口调试软件好用很多, 对于软件,我本身并没有作   太多推广, 一些功能我由于懒也没有文档化; 如果您正在使用, 也觉得我说得没错, 还望您帮忙推广一下. 感激! 本程序最近正在使用C++完全重构, github上面的源代码无法通过编译~~   敬请期待最新版本! 微云你就一坑货, 说了的链接永久有效呢? 源代码: https://github.com/movsb/common.git    声明:本软件为开源软件,绝对不包含任何对系统不利的代码,对于360的那种行为,我不想说什么.   软件界面:       ------------------------------------------------------------------------------------------------------------------------- 说明: 更新信息可能不会再更新到这里, 请到 GitHub 上面查看.   更新: 2014-07-07: ①优化:接收数据时,如果最后一个字符是'\r'或'\n',则会在一定时间内等待接收所有'\r','

串口调试助手

删除回忆录丶 提交于 2019-11-28 17:30:47
每次调试串口的时候都要去网上去找一个串口调试助手。而且普通的调试助手只能显示或者发送一个字符串或者十六进制数。在调试协议的时候经常需要把一些整型数字手工转换十六进数,然后再把十六进制数转换成整型数字非常费劲,要是再碰上浮点数那只有呵呵了。再加上大小端的问题只能直接交枪投降了。 本着自己动手丰衣足食的革命理念,于是乎就有了下面的这个串口调试助手SerialComAssistant,先来看图。 额,好吧!我承认这个串口调试助手是有点过分了。她不只是一个串口调试助手,还是一个socket调试助手支持从TCP到UDP、从单播到广播的全部功能,还支持多客户端连接功能。 她可以满足你对于她的任何想象。 最后给出下载地址 https://pan.baidu.com/s/1ZPVd-cu49BCg-r5dMcy6vg 我觉得我还是要把下面的内容写出来: 串口调试助手转义定义 发送字符串转义定义 字符转义 '\r''\n' '\0' '\\' '\[' '\]' 整数表示 [2|100] 【字节长度 | 十进制整数】 [!2|100] 大端表示 [|1] 默认字节长度为4 [!2|100] 大端表示 [|1] 默认字节长度为4 浮点数表示 [4|1.0] 【字节长度 |浮点数】 [1.0] 默认字节长度为4 [!4|1.0] 大端表示 字节长度 : 2,4,8 二进制数表示 [01 0A]

Python3基础语法注意点

半腔热情 提交于 2019-11-28 15:29:43
文章内容参考了菜鸟教程 数字(Number)类型 python中数字有四种类型:整数、布尔型、浮点数和复数。 int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。 字符串(String) python中单引号等同双引号使用。 转义符:\,可以用来转义,使用r可以让反斜杠不发生转义。。 如 r"this is a line with \n" 则\n会显示,并不是换行。 Python中的字符串不能改变。 实例 1 #!/usr/bin/python3 2 3 str='hello world!' 4 5 print(str) # 输出字符串 6 print(str[0:-1]) # 输出第一个到倒数第二个的所有字符 7 print(str[0]) # 输出字符串第一个字符 8 print(str[2:5]) # 输出从第三个开始到第五个的字符 9 print(str[2:]) # 输出从第三个开始的后的所有字符 10 print(str * 2) # 输出字符串两次 11 print(str + 'Python') # 连接字符串 12 13 print('------------------------------') 14 15 print('Pytho\n hello world!') # 使用反斜杠(\)+n转义特殊字符

Python3基础语法注意点

試著忘記壹切 提交于 2019-11-28 14:53:09
文章内容参考了菜鸟教程 数字(Number)类型 python中数字有四种类型:整数、布尔型、浮点数和复数。 int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。 字符串(String) python中单引号等同双引号使用。 转义符:,可以用来转义,使用r可以让反斜杠不发生转义。。 如 r"this is a line with \n" 则\n会显示,并不是换行。 Python中的字符串不能改变。 实例 !/usr/bin/python3 str='hello world!' print(str) # 输出字符串 print(str[0:-1]) # 输出第一个到倒数第二个的所有字符 print(str[0]) # 输出字符串第一个字符 print(str[2:5]) # 输出从第三个开始到第五个的字符 print(str[2:]) # 输出从第三个开始的后的所有字符 print(str * 2) # 输出字符串两次 print(str + 'Python') # 连接字符串 print('------------------------------') print('Pytho\n hello world!') # 使用反斜杠()+n转义特殊字符 print('Pytho\n hello world!') #