正则表达式入门

一、基本字符

  1. ^ 字符 开始
  2. $ 字符 结束
  3. * 字符 0~n
  4. + 字符 1~n
  5. ? 字符 0或1
  6. {} 限定字符共6种形式

ab{}、a{+}、a{?}、a{2}、a{1,}、a{2,6}
a{
} a、ab、abb
a{+} a 、ab、abb
a{?} a、ab、 abb
a{2} aab、abb
a{1,} a、ab、abb
a{2,6} aab、abb、abbb

  1. | 两项之间可选
  2. []集合

二、转义字符

  1. \b 单词 er\b never、verb
  2. \B 非单词
  3. \d 一个数字
  4. \D 非数字
  5. \n 换行符
  6. \r 回车符
  7. \s 空白符,含空格、制表符、换行符
  8. \w 包括下划线的任何单词字符

三、贪婪模式与非贪婪模式(惰性)

  1. ? + * {min, max}在默认情况下是贪婪模式的,会尽可能的去匹配更多的字符,比如ab*在匹配abbbbbb时会尽可能的匹配更多abbbbb
  2. ?紧跟在其他限定符之后,则为非贪婪模式,ab*?则会匹配ab,而不是abbbbb

四、常用正则表达式

  1. [\u4e00-\u9fa5] 中文字符
  2. \n\s*\r 空白行
  3. [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?Email地址
  4. [a-zA-z]+://[^\s]*网址
  5. [1-9]\d{5}(?!\d)中国邮政编码
  6. ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$ 18位身份证号
  7. ^[1-9]\d*$正整数
  8. ^\d{m,n}$m-n位的数字
  9. ^.{m,n}$m-n位的所有字符

- 阅读全文 -

Java程序员开发中常用到的Linux命令

1、修改文件(夹)名字: mv 修改前文件(夹)名 修改后文件(夹)名

mv /opt/tomcat-7.0.69 /opt/tomcat7

2、ps -ef | grep tomcat
ps是Process Status的意思,用来列出系统中当前运行的进程
grep是Global Regular Expression Print,正则表达式

3、find . -name 're*'
.代表当前目录及子目录
re*代表以re开头的文件名,属于正则表达式的内容

图解git常用命令

常用的命令:add、commit、push、fetch/clone、pull

git

workspace:本地工作目录/项目
index/stage:暂缓区,文件从这里开始受版本控制
local repository:本地仓库
remote repository:远程仓库,常见GitHubOSChinaCoding

maven常用地址整理

修改位置 
    maven安装目录/conf/settings.xml
                        <mirrors>
                            <mirror>

1、http://maven.aliyun.com/nexus/content/groups/public

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror> 

- 阅读全文 -

CentOS安装JDK、Tomcat

1、下载JDK

http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html
按照自己的电脑选择合适的版本,此处下载 jdk-7u79-linux-x64.gz

2、解压jdk

tar zxvf jdk-7u79-linux-x64.gz

3、配置环境变量

vi /etc/profile
在最后追加

export JAVA_HOME=你的jdk路径
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

- 阅读全文 -

JavaScript处理JSON

不建议使用eval()解析JSON

JSON.stringify()序列化一个JSON值

var foo = {};
foo.x = "new prop";
foo.y = 3;

var JSONfoo = JSON.stringify(foo);
//JSONfoo => {"x":"new prop","y":3}

JSON.parse()反序列化一个JSON值

var backToJS = JSON.parse(JSONfoo);

JavaScript标准库-常量属性

表示一个简单的值的全局属性

1. Infinity

Infinity 数值,正无穷大,大于任何值

2. NaN

Not-A-Number

等号运算符(== 和 ===) 不能被用来判断一个值是否是 NaN
判断一个值是否是NaN,使用 Number.isNaN() 或 isNaN() 函数

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

function valueIsNaN(v) { return v !== v; }
valueIsNaN(1);          // false
valueIsNaN(NaN);        // true
valueIsNaN(Number.NaN); // true

3. undefined

首字母大写的Undefined表示的是一种数据类型,小写的undefined表示的是属于这种数据类型的唯一的一个值

一个未初始化的变量的值为undefined,一个没有传入实参的形参变量的值为undefined,如果一个函数什么都不返回,则该函数默认返回undefined

可以使用严格相等运算符===判断一个值是否是undefined

var x;
if (x === undefined) {
   //严格相等执行这里,注意不要使用普通的相等==
}

也可以使用typeof来判断(推荐)

if (typeof x === 'undefined') {
   // 即使x没有被声明过也不会报错
}

4. null

null是一个字面量,而不是一个全局变量,表示空值(null or an "empty" value),即对象没有被呈现(no object value is present),是JavaScript的原始对象。

MySQL开发中常用的查询语句总结

完整的SELECT语句结构:
SELECT
FROM
WHERE
HAVING
ORDER BY
WITH

table_name

1、查询数值型数据:

SELECT id,name,age FROM table_name WHERE age > 20;

查询谓词:
>,=,<,<>,!=,!>,!<,=>,=<
<> != 效果是一样的

2、查询字符串

SELECT id,name,age FROM table_name  WHERE name like ‘%张%’

%代表任意字符

3、查询非空数据

SELECT * FROM table_name WHERE address <> "" order by addtime desc
SELECT COUNT(id) FROM table_name WHERE id IS NOT NULL

- 阅读全文 -

windows系统解决tomcat提示端口被占用的问题

最近2个项目在一起同步开发,tomcat不知道那根神经错乱,常常无法正常停止,造成其他项目启动的时候提示端口被占用

端口被占用

解决方法:

windows环境下启动cmd

1、 netstat -aon|findstr "8005" 查看被占用的端口被那个程序使用

参数是被占用的端口号

TCP     127.0.0.1:80       0.0.0.0:0             LISTENING    7800

- 阅读全文 -