差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
it:skills:正則表達式 [2021-11-28 09:07] – [表] goldentianyait:skills:正則表達式 [2023-04-22 07:12] (当前版本) – [正則表達式] goldentianya
行 1: 行 1:
 ====== 正則表達式 ====== ====== 正則表達式 ======
 +
 +reg reguläre Ausdruck
 +
 +[[https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F|語法說明(維基百科)]]
 +[[https://regex101.com/|Playground]]
 +
 +
  
 ^ 特殊符号                                   ^ 描述                     | 示例            | 示例意义                            | ^ 特殊符号                                   ^ 描述                     | 示例            | 示例意义                            |
 | <color #ff7f27>''%%|%%''</color>       | 管道符号,表示选择其中一个进行匹配      | ''re1| re2''  | 选择匹配正则表达式re1或者re2               | | <color #ff7f27>''%%|%%''</color>       | 管道符号,表示选择其中一个进行匹配      | ''re1| re2''  | 选择匹配正则表达式re1或者re2               |
 | <color #ff7f27>''%%.%%''</color>       | 匹配除去\n之外的任意字符          | d.d           | 表示匹配d与d之间为任意字符的情况,如“did”“d2d”等  | | <color #ff7f27>''%%.%%''</color>       | 匹配除去\n之外的任意字符          | d.d           | 表示匹配d与d之间为任意字符的情况,如“did”“d2d”等  |
-| <color #ff7f27>''%%^%%''</color>       | 匹配字符串起始部分              | ^my           | 表示任何以my作为开始的字符串                 |+| <color #ff7f27>''%%^%%''</color>       | 匹配字符串起始部分              | ''^my''       | 表示任何以my作为开始的字符串                 |
 | <color #ff7f27>''%%$%%''</color>       | 匹配字符串终止符               | bye$          | 表示匹配任何以bye结束的字符串                | | <color #ff7f27>''%%$%%''</color>       | 匹配字符串终止符               | bye$          | 表示匹配任何以bye结束的字符串                |
 | <color #ff7f27>''%%*%%''</color>       | 匹配0或者多次左端出现的正则表达式      | [0-9]*        | 表示匹配以任意个数字开始的字符串                | | <color #ff7f27>''%%*%%''</color>       | 匹配0或者多次左端出现的正则表达式      | [0-9]*        | 表示匹配以任意个数字开始的字符串                |
行 10: 行 17:
 | <color #ff7f27>''%%?%%''</color>       | 匹配0次或者1次左端出现的正则表达式     | [0-9]?        | 表示匹配以0个或者1个数字开始的字符串             | | <color #ff7f27>''%%?%%''</color>       | 匹配0次或者1次左端出现的正则表达式     | [0-9]?        | 表示匹配以0个或者1个数字开始的字符串             |
 | <color #ff7f27>''%%{N}%%''</color>     | 匹配N次左端出现的正则表达式         | [0-9]{N}      | 匹表示配以N个数字开始的字符串                 | | <color #ff7f27>''%%{N}%%''</color>     | 匹配N次左端出现的正则表达式         | [0-9]{N}      | 匹表示配以N个数字开始的字符串                 |
-| <color #ff7f27>''%%{M,N}%%''</color>                                                                        +| <color #ff7f27>''%%{M,N}%%''</color>   匹配M次到N次左端出现的正则表达式      [0-9]{M,N}    匹表示配以M个到N个数字开始的字符串              
-| <color #ff7f27>''%%[...]%%''</color>                                                                        +| <color #ff7f27>''%%[...]%%''</color>   匹配来自括号中字符集的任意一个        [abcd]        表示匹配a或者b或者c或者d                  
-| <color #ff7f27>''%%[.-.]%%''</color>                                                                        +| <color #ff7f27>''%%[.-.]%%''</color>   匹配从.到.之间的任意一个字符        [a-g]         表示匹配a到g之间的任意一个字符,如a或b...        
-| <color #ff7f27>''%%[^...]%%''</color>                                                                      +| <color #ff7f27>''%%[^...]%%''</color> 不匹配此字符集中的任何一个字符        ''[^abc]''    表示匹配不是字符a或b或c的任意字符              
-| <color #ff7f27>''%%()%%''</color>      |                                                                      +| <color #ff7f27>''%%()%%''</color>      | 对正则表达式进行分组或者匹配子组       ([0-9]{3})?   表示匹配三个数字出现一次或者不出现的情况          
-| <color #ff7f27>''%%\d\D%%''</color>    |                                                                      +| <color #ff7f27>''%%\d\D%%''</color>    | \d任何一个十进制数字,\D任何非数字    \d\d\d        匹配三个数字的字符串                      
-| <color #ff7f27>''%%\w\W%%''</color>    |                                                                      +| <color #ff7f27>''%%\w\W%%''</color>    | \w任何字母字符,\W任何非字母字符     \w+           匹配一个由字母字符组成的字符串                 
-| <color #ff7f27>''%%\s\S%%''</color>    |                                                                      +| <color #ff7f27>''%%\s\S%%''</color>    | \s任何空格字符,\S任何非空格字符     of\sthe       匹配of和the之间有任何空格字符的情况            
-| <color #ff7f27>''%%\b\B%%''</color>    |                                                                      +| <color #ff7f27>''%%\b\B%%''</color>    | \b任何单词边界,\B任何非单词边界     \bthe         任何以the开始的字符串                    
-| <color #ff7f27>''%%\N%%''</color>      |                                                                      |+| <color #ff7f27>''%%\N%%''</color>      | 匹配已保存的子组N              price:\N      匹配price:后面加已保存的子组N的形式           |
 | <color #ff7f27>''%%\c%%''</color>      | 仅按照c的字面意思进行匹配          | '' \*''       | 匹配字符\*                          | | <color #ff7f27>''%%\c%%''</color>      | 仅按照c的字面意思进行匹配          | '' \*''       | 匹配字符\*                          |
 | <color #ff7f27>''%%\A\Z%%''</color>    | \A匹配字符串的开始,\Z匹配字符串的结尾  | \Acar         | 匹配以car开始的字符串                    | | <color #ff7f27>''%%\A\Z%%''</color>    | \A匹配字符串的开始,\Z匹配字符串的结尾  | \Acar         | 匹配以car开始的字符串                    |
  
 +====== 密码 ======
 +8个字符并包括一个大小写和数字
 +  /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/gm
 +
 +8个字符并包括一个大小写和数字、特殊字符
 +  ^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$
 +  
 +===== Javascript 案例 =====
 +<code |>
 +var pattern = /^(?<content>[^|]+)+(\|(?<color>[a-z]+))?$/
 +      let match = "abc|gray".match(pattern)
 +      let color = undefined
 +      var cl = color || match.groups["color"]
 +      expect(cl).to.equal('gray');
 +
 +      match = "aaaa".match(pattern)
 +      expect(match.groups["color"]).to.equal(undefined) //不是 undefined
 +      match = "aaaa|".match(/^(?<content>[^|]+)+(\|(?<color>[a-z]*))?$/)
 +      expect(match.groups["color"]).to.equal("")
 +</code>
it/skills/正則表達式.1638090427.txt.gz · 最后更改: 2021-11-28 09:07 由 goldentianya
回到顶部
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0