字符描述: \:将下一个字符标记为特殊字符或字面值。例如”n”与字符”n”匹配。”\n”与换行符匹配。序列”\\”与”\”匹配,”\(“与”(“匹配。
^ :匹配输入的开始位置。
$ :匹配输入的结尾。
* :匹配前一个字符零次或几次。例如,”zo*”可以匹配”z”、”zoo”。
+ :匹配前一个字符一次或多次。例如,”zo+”可以匹配”zoo”,但不匹配”z”。
? :匹配前一个字符零次或一次。例如,”a?ve?”可以匹配”never”中的”ve”。
.: 匹配换行符以外的任何字符。
(pattern) 与模式匹配并记住匹配。匹配的子字符串可以从作为结果的 Matches 集合中使用 Item [0]…[n]取得。如果要匹配括号字符(和 ),可使用”\(” 或 “\)”。
x|y:匹配 x 或 y。例如 “z|food” 可匹配 “z” 或 “food”。”(z|f)ood” 匹配 “zoo” 或 “food”。
{n}:n 为非负的整数。匹配恰好n次。例如,”o{2}” 不能与 “Bob 中的 “o” 匹配,但是可以与”foooood”中的前两个o匹配。
{n,} :n 为非负的整数。匹配至少n次。例如,”o{2,}”不匹配”Bob”中的”o”,但是匹配”foooood”中所有的o。”o{1,}”等价 于”o+”。”o{0,}”等价于”o*”。
{n,m} :m 和 n 为非负的整数。匹配至少 n 次,至多 m 次。例如,”o{1,3}” [...]
function gb2312(key)
{
var r = “”;
for(var i=0;i<key.length;i++)
{
var t = key.charCodeAt(i);
if(t>=0×4e00 || t==0×300A || t==0×300B)
{
try
{
execScript(“ascCode=hex(asc(\””+key.charAt(i)+”\”))”, “vbscript”); r += ascCode.replace(/(.{2})/g, “%$1″); }
catch(e)
{}
}
else{r += escape(key.charAt(i))}
}
return r;
}
模式修正符
模式修正符 — 解说正则表达式模式中使用的修正符
说明
下面列出了当前在 PCRE 中可能使用的修正符。括号中是这些修正符的内部 PCRE 名。修正符中的空格和换行被忽略,其它字符会导致错误。
i (PCRE_CASELESS)
如果设定此修正符,模式中的字符将同时匹配大小写字母。
m(PCRE_MULTILINE)
默 认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始,“行结束”元字符($)仅 仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。
当设定了此修正符,“行 起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“\n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。
s(PCRE_DOTALL)
如 果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。
x(PCRE_EXTENDED)
如果 设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。这和 Perl 的 /x 修正符是等效的,使得可以在复杂的模式中加入注释。然而注意,这仅适用于数据字符。空白字符可能永远不会出现于模式中的特殊字符序列,例如引入条件子模式 的序列 (?( 中间。
e
如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。
只有 preg_replace() 使用此修正符,其它 PCRE [...]
以下内容转载自网络。
近期研究一些突破验证码方面的知识,记录下来。一方面算是对这几天学习知识的总结帮助自己理解;另一方面希望对研究 这方面的技术同学有所帮助;另外也希望引起网站管理者的注意,在提供验证码时多些考虑进去。由于刚刚接触这方面的知识,理解比较浅显,有错误再所难免,欢 迎拍砖。
VMware 相关
设备管理器看到键盘那项里是一个惊叹号!
查看详细信息:
设备管理器显示:代码 19:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备
删除这个设备,在扫描硬件更新,找到后依然是这个提示:代码 19:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备,真是郁闷了。
google一下得到下面类似的解决方法:
打开注册表regedit,
定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}
删除UpperFilters项
卸载设备,重新启动。
然后设备管理器里变成:代码 10:该设备无法启动。
定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}
添加字符串UpperFilters项,内容是kbdclass
卸载设备,重新启动。
实际应用了一下,果然好用,问题终于解决!其实出现类似的情况,不仅仅是键盘,其他外设出现的几率也有,比如光驱,不过解决方法和这个大致一样。
Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}这里面的{4D36E96B-E325-11CE- BFC1-08002BE10318}这个表示是键盘,注册表里也有详细描述,Class下有很多这样的字符,打开一看就明白表示什么了
PS:(这段话是问题解决者所说)
其实这个问题应该是UpperFilters的问题,这个内容来自dxdiag程序,输入标签下的“与输入相关的设备”里的PS/2设备,高层筛选程序。注册表里UpperFilters这个值和这个高层筛选程序一样。
PS:虽然设备管理器有问题,但是dxdiag程序没有发现错误,很奇怪。
在 CentOS 5.4 下编译安装MySQL时出错:
/bin/rm: cannot remove `libtoolt’: No such file or directory
网上搜寻后,解决问题。具体方法是:
在执行./configure 之前,先执行:
# autoreconf –force –install
# libtoolize –automake –force
# automake –force –add-missing
# ./configure –prefix=/usr/local/mysql/ –datadir=/var/lib/mysql
You should recreate aclocal.m4 with macros from libtool 2.2 错误
libtool 版本问题
cp /usr/bin/libtool .
然后再 make
SELECT * FROM ALL_SOURCE where TYPE=’PROCEDURE’ AND TEXT LIKE ‘%0997500%’;
–查询ALL_SOURCE中,(脚本代码)内容与0997500模糊匹配的类型为PROCEDURE(存储过程)的信息。
根据GROUP BY TYPE
该ALL_SOURCE中只有以下5种类型
1 FUNCTION
2 JAVA SOURCE
3 PACKAGE
4 PACKAGE BODY
5 PROCEDURE