content
{:toc}
百度前端学院的第二次任务笔记,JavaScript 基础。主要有JavaScript的定义,数据类型,对象,数组,字符串,正则表达式,DOM,事件,BOM,Ajax 等知识。
任务
掌握JavaScript基础知识,能够使用JavaScript编写一些复杂度不大的交互功能。
继续阅读 »
有穷自动机
为了实现对于正规式(可理解为正则表达式)的识别,我们提出了有穷自动机理论,有穷自动机接受正规式的定义符,并不断的识别符号,移动到新的状态,如果出现了识别错误就会报错。
有穷自动机包含确定的有穷自动机(DFA),和不确定的有穷自动机(NFA)。两者的主要区别在于,在同一个状态时,是否通过同样的符号输入能达到不同的状态。如果能就是不确定的,反之就是确定的。另外:NFA还可以接受空字串已达到不同的状态。
三个主要的算法
这其中有三个主要的算法:
正规式 => NFA Thompson算法
这个算法使用了一些模版去对应正则表达式中的符号,只要记住模版,就能推出相应的NFA。
继续阅读 »
几种常用算法
我们日常会用正则表达式的时候,我们会发现正则表达式用了非常精简的语法就能概括多种输入串的特征,
继续阅读 »
博客地址: http://lfkdsk.github.io
代码地址: https://github.com/lfkdsk/CodeParse
为计算器添加一些新功能
本节代码:CalcWithTable
上次我们使用Lex & Yacc制作了一个能够处理优先级的计算器,其中的优先级的设定是通过修改文法
,将优先级提升,这次重写这个计算器并添加一些新的功能。
先看Lex文件
``` C
%{
include "y.tab.h"
include
include "link_list.h"
%}
%%
/* 这段正则和之前都有所不同 明显的增加了对于科学
继续阅读 »
之前玩了下http://reg007.com,他可以判断手机号或者邮箱在哪些网站注册过.
于是试着写了一下判断帐号是否在淘宝注册的脚本.
原理很简单,就是用该帐号登陆,判断返回的页面是不是用户名与密码不匹配..只不过跑的次数太多了会出验证码,没有研究过怎么过验证码,所以还没办法测试大量的帐号.
用到了re,urllib2,request库.request用于简化登陆步骤,re正则简单判断返回页面有无关键字
继续阅读 »
删除a.txt中含abc的行,但不改变a.txt文件本身,操作之后的结果在终端显示
sed -e '/abc/d' a.txt
删除a.txt中含abc的行,将操作之后的结果保存到a.log
sed -e '/abc/d' a.txt > a.log
* 删除含字符串abc或efg的行,将结果保存到a.log
sed '/abc/d;/efg/d' a.txt > a.log
其中,abc也可以用正则表达式来代替。
继续阅读 »
熟悉一下Lex 和 Yacc的用法
博客地址: http://lfkdsk.github.io
代码地址: https://github.com/lfkdsk/CodeParse
tips:阅读此篇需要一定的C语言基础和正则表达式的知识
首先上一篇提到了第一步的工作是要使用 Lex 和 Yacc 进行编写,所以说第一步首先简单的学习一下 Lex & Yacc 的用法,Lex & Yacc 是一套很古老的编译生成套件,大约在上个世纪80年代就有了。但是并不过时,我们今天生成编译程序仍然能够用得上。Lex & Yacc 如果简单的概括来说,Lex 负责词法分析,就是把输入串的纯字符转化为
继续阅读 »
做了件无聊的事,做完发现有人做过了(https://www.v2ex.com/t/401615) ,记录一下。
GitHub用户名要求是
html
Username may only contain alphanumeric characters or single hyphens, and cannot begin or end with a hyphen
也就是满足正则 ^[0-9a-zA-Z]$|[0-9a-zA-Z][-0-9a-zA-Z]*[0-9a-zA-Z] ,
因为大小写不敏感,所以相当于 ^[0-9a-z]$|[0-9a-z][-0-9a-z]*[0-9a-z]
产生一位和两位的符合GitHub命名
继续阅读 »
java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串。它本质上是使用正则表达式去读取不同的数据类型。
Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本。
下面是两个类的不同之处:
当nextLine()被用在nextXXX()之后,用Scanner类有什么问题
尝试去猜测下面代码的输出内容;
// Code using Scanner Class
import java.util.Scanner;
class Differ
{
public static void main(String args[])
{
继续阅读 »
新特性
自动检测所有系统libc接口,优先使用系统版本
支持自定义内存分配器,并且能够在debug模式下,获取每次分配的代码位置信息,用于自定义追踪
增加轻量级static_pool来维护整块buffer的内存分配,适合局部管理部分内存,pool虽然也能维护,但是底层基于large_pool,比较重量级,适合全局管理内存
增加stream快速读取全部数据到string的接口
增加adler32 hash算法
增加tb_memmem接口
采用pcre/pcre2/posix regex实现正则表达式库
改进
优化stream,支持对字符设备文件的读写
修改tb_init接口,增加allocator自定义内存分配器参数,实现用户的侵
继续阅读 »