差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
it:skills:正則表達式 [2021-11-28 09:14] – [表] 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]*        | 表示匹配以任意个数字开始的字符串                |
行 13: 行 20:
 | <color #ff7f27>''%%[...]%%''</color>   | 匹配来自括号中字符集的任意一个        | [abcd]        | 表示匹配a或者b或者c或者d                  | | <color #ff7f27>''%%[...]%%''</color>   | 匹配来自括号中字符集的任意一个        | [abcd]        | 表示匹配a或者b或者c或者d                  |
 | <color #ff7f27>''%%[.-.]%%''</color>   | 匹配从.到.之间的任意一个字符        | [a-g]         | 表示匹配a到g之间的任意一个字符,如a或b...        | | <color #ff7f27>''%%[.-.]%%''</color>   | 匹配从.到.之间的任意一个字符        | [a-g]         | 表示匹配a到g之间的任意一个字符,如a或b...        |
-| <color #ff7f27>''%%[^...]%%''</color>  | 不匹配此字符集中的任何一个字符        | ''[^abc]''    表示匹配不是字符a或b或c的任意字符              ^ +| <color #ff7f27>''%%[^...]%%''</color>  | 不匹配此字符集中的任何一个字符        | ''[^abc]''    表示匹配不是字符a或b或c的任意字符              | 
-| <color #ff7f27>''%%()%%''</color>      | 对正则表达式进行分组或者匹配子组       | ([0-9]{3})?   | 表示匹配三个数字出现一次或者不出现的情况            |+| <color #ff7f27>''%%()%%''</color>      | 对正则表达式进行分组或者匹配子组       | ([0-9]{3})?   | 表示匹配三个数字出现一次或者不出现的情况          |
 | <color #ff7f27>''%%\d\D%%''</color>    | \d任何一个十进制数字,\D任何非数字    | \d\d\d        | 匹配三个数字的字符串                      | | <color #ff7f27>''%%\d\D%%''</color>    | \d任何一个十进制数字,\D任何非数字    | \d\d\d        | 匹配三个数字的字符串                      |
 | <color #ff7f27>''%%\w\W%%''</color>    | \w任何字母字符,\W任何非字母字符     | \w+           | 匹配一个由字母字符组成的字符串                 | | <color #ff7f27>''%%\w\W%%''</color>    | \w任何字母字符,\W任何非字母字符     | \w+           | 匹配一个由字母字符组成的字符串                 |
行 23: 行 30:
 | <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/正則表達式.1638090887.txt.gz · 最后更改: 2021-11-28 09:14 由 goldentianya
回到顶部
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0