zoukankan      html  css  js  c++  java
  • 正则 —— (.*)与(.*?)和一些基础的东西

    今天我来学习正则表达式

    1 . * 与 ?

    来看最基础的正则符号  ----  *  ? ------

    * 通配符匹配零个或多个字符

    ? 通配符匹配文件名中的 0 个或 1 个字符

    这里有两个经典的名词 懒惰匹配 贪婪匹配  其中涉及两个组合的符号 (.*)(*?.)

     (.*) 是贪婪匹配代表尽可能多的匹配字符因此它将h和l之间所有的字符都匹配了出来

     (.*?) 是懒惰匹配尽可能匹配少的字符但是要匹配出所有的字符

     (.+?) 代表匹配中间字符数量是大于等于1的字符

     (.??)这个是匹配重复一次和零次的

    其中的数量我们也是可以自己定义的

     .{n,m}?代表匹配数量从n到m数量的字符

    2 . 正则的基础语法

    对于 ^[0-9a-zA-Z_-]+abcdef$

    我们怎么来解释呢?

    • ^为匹配输入字符串的开始位置。
    • [0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。.
    • abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。
    • [0-9a-zA-Z_-]代表由数字小写字母大写字母下划线终止符组成的加号代表由多个字符组成的
    • abcdef$匹配字母 abcdef 并以 abcdef 结尾,$ 为匹配输入字符串的结束位置。
  • 相关阅读:
    LeetCode15 3Sum
    LeetCode10 Regular Expression Matching
    LeetCode20 Valid Parentheses
    LeetCode21 Merge Two Sorted Lists
    LeetCode13 Roman to Integer
    LeetCode12 Integer to Roman
    LeetCode11 Container With Most Water
    LeetCode19 Remove Nth Node From End of List
    LeetCode14 Longest Common Prefix
    LeetCode9 Palindrome Number
  • 原文地址:https://www.cnblogs.com/Nlifea/p/11748647.html
Copyright © 2011-2022 走看看