文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>正则表达式

正则表达式

时间:2010-04-29  来源:sjtlqy

匹配以a开头,t结尾的字符:
egrep  "^a.*t$"  a.txt 在a.txt中查找相应的字符。
如果对这些字符的个数 ,就可以在后面添上wc -w来用于计数。
^表示字符的开头标志。
.号表示匹配一次。
$表示,字符串的结尾。
egrep  "\<.at\>"  可以匹配以at结尾的所有单词,\其实说明了要匹配的是一个单词。
字符集的应用:
egrep "{asd]at"  这样就匹配以a s d开头的,以at结尾的字符。
也可以同样的匹配单词字符串。egrep  "<\[asd]at\>" a.txt
大写字母开头,小写字母结尾的字符。
egrep  "^[[:upper:]]t$"
就可以显示以大写字母开头的,t结尾的字符。
upper是一个字符类。
正则表达式是工作中常用的工具,特在这总结一下。
java中使POSIX正则字符类表示如下
\p{Lower} 小写字母字符:[a-z]
\p{Upper} 大写字母字符:[A-Z]
\p{ASCII} 所有 ASCII:[\x00-\x7F]
\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]
\p{Digit} 十进制数字:[0-9]
\p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}]
\p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} 可见字符:[\p{Alnum}\p{Punct}]
\p{Print} 可打印字符:[\p{Graph}\x20]
\p{Blank} 空格或制表符:[ \t]
\p{Cntrl} 控制字符:[\x00-\x1F\x7F]
\p{XDigit} 十六进制数字:[0-9a-fA-F]
\p{Space} 空白字符:[ \t\n\x0B\f\r]
然而Java中有更简便的方法,就是使用预定义字符类,列表如下
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

在Linux shell的egrep,grep,sed,awk中,使用POSIX字符类比较长了,[:class:]为形式
如[:alpha:]相当于a-zA-Z,因此表示多个字母的形式为[a-zA-Z]*或者[[:alpha:] 匹配字母. 等同于 A-Za-z,更多的字符类如下
[:blank:] 匹配一个空格或是一个制表符(tab)
[:cntrl:]  匹配控制字符.
[:digit:]  匹配(十进制)数字. 等同于 0-9.
[:graph:] (可打印的图形字符). 匹配 ASCII 码值的 33 - 126 之间的字符.这和[:print:]一样,但不包括空格字符
[:lower:] 匹配小写字母. 等同于 a-z
[:print:] (可打印字符). 匹配 ASCII码值 32 - 126 之间的字符. 这和[:graph:]一样,但是增多一个空格字符
[:space:]  匹配空白字符 (空格符和水平制表符)
[:upper:]  匹配大写字母. 等同于 A-Z
[:xdigit:] 匹配十六进制数字. 等同于 0-9A-Fa-f[:alpha:]]*

#!/bin/bash   确定需要执行的shell的种类
echo   "hello world!"    可以显示文本
log ="monday"
echo "the vaule  of  log is"
echo $log
通过赋值来显示一个内容-bash-3.00$ cat a.sh
#!/bin/bash
log=monday
echo "the vaule  of  log is"
echo "log is ${log}out
echo $log
echo \$
-bash-3.00$ sh a.sh
the vaule  of  log is
log is mondayout
echo monday
echo $
通过``和‘’和“”的作用做一个举例:
log=saturday
echo "today is $log"
echo  'today is $log'
echo  "today is ``data`"
下面举例是if判断的用法
ech "Enter password"
read password
if ["$password"="mypassword"];
then
  echo  "welcom"
fi

case语句也是一种很好的,类似于c语言中的case:
do while语句:

#!/bin/bash

sum=0

number=1

while test  $number -le  100

do

  sum=$[ $sum + $number ]

let number =$number + 1

  done

  echo   "The sum is $sum  "

 

以上是do while语句的作用实例

le是less or equal的意思




相关阅读 更多 +
排行榜 更多 +
太空飞船终极攻击

太空飞船终极攻击

飞行射击 下载
化作星辰

化作星辰

飞行射击 下载
枪战火柴人中文版

枪战火柴人中文版

飞行射击 下载