匹配出连续数字或者字母的PHP正则表达式

网络整理 - 07-30

正则表达式的写法规则:"/规则需要写在2个斜杠中间/"。

  • (. :小数点)用于匹配除换行符之外的所有字符。

  • (\s:反斜杠小写s)用于匹配单个空格符,包括tab键和换行符;

  • (\S:反斜杠大写S)用于匹配除单个空格符之外的所有字符;

  • (\d:反斜杠d)用于匹配从0到9的数字;也可以这样写:[0-9]

  • (\w:反斜杠小写w)用于匹配字母,数字或下划线字符;

  • (\W:反斜杠大写W)用于匹配所有与\w不匹配的字符;

  • 另外如果觉得元字符“+*?”比较难理解可以用这种{ }方法代替:

    比如es*我们可以写成es{0,},而es+我们可以写成es{1,},es?可以写成es{0,1},注意:当不确定次数的时候就不用写(也不用空格)。

    当然我们要指定出现多少次的可以写成这样:es{3}表示s出现3次

    举一反三:

    比如要替换连续多个空格为一个空格,我可以这样写:preg_replace("/\s+/"," ",$str);
    比如要找出字符串中的数字(整数):preg_replace("/\d+/", "(\\0)", $str); \\0是表示符合规则的字符串值

    比如要找出字符串中的带小数点的数字:preg_replace("/\d+\.\d+/", "(\\0)", $str); //这里的“\.”表示输出小数点

    找出由字母组成的字符串:preg_replace("/[a-zA-Z]+/", "(\\0)", $str)

    找出由(字母、数字混合)组成的字符串:preg_replace("/([a-zA-Z]|\d)+/", "(\\0)", $str)

    正则表达式中“或”运算,使用 “ | ”

    例如上面的例子:找出由(字母或数字)混合组成的字符串([a-zA-Z]|\d) 也可以这样写([a-zA-Z]|[0-9])

    “^”出现在 “[ ]”内时就被视做否定运算符;[^0-9]表示除了数字之外的任何字符。

    而当“^”位于“[ ]”之外,或没有“[ ]”时,则应当被视做定位符。

    定位符的意思就是比如:“^The”:开头一定要有”The”字符串;类似的:“en$”:$符号表示必须是en结尾。

    其实认真看一遍就会发现正则表达式还是挺简单的,除非是我写的教程真的有问题。