您的位置:首页 > 其它

半小时学会正则表达式(四)

2010-07-16 14:36 169 查看
这暗示匹配的字符串必须最少以一个阿拉伯数字开头. 但是注意,在上面模式中 "10." 是不匹配的, 只有 "10" 和 "10.2"
才可以. (你知道为什么吗)

  ^[0-9]+(/.[0-9]{2})?$

  我们上面指定小数点后面必须有两位小
数.如果你认为这样太苛刻,你可以改成:

  ^[0-9]+(/.[0-9]{1,2})?$

  这将允许小数点后面有一到两
个字符. 现在我们加上用来增加可读性的逗号(每隔三位), 我们可以这样表示:

  
^[0-9]{1,3}(,[0-9]{3})*(/.[0-9]{1,2})?$

  不要忘记 '+' 可以被 '*' 替代
如果你想允许空白字符串被输入话 (为什么?). 也不要忘记反斜杆 ’/’ 在php字符串中可能会出现错误 (很普遍的错误).

 
 现在,我们已经可以确认字符串了, 我们现在把所有逗号都去掉 str_replace(",", "", $money) 然后在把类型看成
double然后我们就可以通过他做数学计算了.

  再来一个:

  构造检查email的正则表达式


  在一个完整的email地址中有三
个部分:

  1. 用户名 (在 '@' 左边的一切),

  2.'@'
,

 
 3. 服务器名(就是剩下那部分).

  用户名可以含有大小写字母阿拉伯数字,句号 ('.'), 减号('-'), and 下划线
('_'). 服务器名字也是符合这个规则,当然下划线除外.

  现在, 用户名的开始和结束都不能是句点. 服务器也是这样.
还有你不能有两个连续的句点他们之间至少存在一个字符,好现在我们来看一下怎么为用户名写一个匹配模式:

  
^[_a-zA-Z0-9-]+$

  现在还不能允许句号的存在. 我们把它加上:

  
^[_a-zA-Z0-9-]+(/.[_a-zA-Z0-9-]+)*$

  上面的意思就是说:
"以至少一个规范字符(除了.)开头,后面跟着0个或者多个以点开始的字符串."
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: