From d9bc70372e19d89888ad9597a91cc7021f2d0041 Mon Sep 17 00:00:00 2001 From: sookie Date: Fri, 28 Dec 2018 14:44:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=88=99=E8=A1=A8=E8=BE=BE=E5=BC=8F?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=85=A5=E9=97=A82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 +- .../JavaScript/正则表达式重新入门(1).md | 2 + .../JavaScript/正则表达式重新入门(2).md | 181 ++++++++++++++++++ source/images/JavaScript/regex/match.jpg | Bin 0 -> 7602 bytes source/images/JavaScript/regex/reg.exec1.jpg | Bin 0 -> 9933 bytes source/images/JavaScript/regex/reg.exec2.jpg | Bin 0 -> 19557 bytes 6 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 source/_posts/JavaScript/正则表达式重新入门(2).md create mode 100644 source/images/JavaScript/regex/match.jpg create mode 100644 source/images/JavaScript/regex/reg.exec1.jpg create mode 100644 source/images/JavaScript/regex/reg.exec2.jpg diff --git a/package.json b/package.json index a58884f..49cd83f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "hexo-site", - "version": "0.0.0", + "name": "hexo_blog", + "version": "1.0.0", "private": true, "hexo": { "version": "3.8.0" diff --git a/source/_posts/JavaScript/正则表达式重新入门(1).md b/source/_posts/JavaScript/正则表达式重新入门(1).md index 253b6aa..f453904 100644 --- a/source/_posts/JavaScript/正则表达式重新入门(1).md +++ b/source/_posts/JavaScript/正则表达式重新入门(1).md @@ -3,6 +3,8 @@ title: 正则表达式重新入门(1) date: 2018-12-10 16:34:42 categories: - JavaScript +tags: + - 正则表达式 --- ### RegExp对象 diff --git a/source/_posts/JavaScript/正则表达式重新入门(2).md b/source/_posts/JavaScript/正则表达式重新入门(2).md new file mode 100644 index 0000000..ab9c6a4 --- /dev/null +++ b/source/_posts/JavaScript/正则表达式重新入门(2).md @@ -0,0 +1,181 @@ +--- +title: 正则表达式重新入门(2) +date: 2018-12-24 10:11:46 +categories: + - JavaScript +tags: + - 正则表达式 +--- + +### 修饰符 +修饰符是作用于整个表达式的附加属性 +对于两种创建RegExp对象的方式 +有各自对应的指定修饰符的语法 + +```javascript +let reg1 = /^\w+$/g +let reg2 = new RegExp('^\\w+$', 'g') +``` + + ++ `g` : 全局搜索, 对应RegExp对象中的**global**属性 ++ `i` : 忽略大小写, 对应RegExp对象中的**ignoreCase**属性 ++ `m` : 多行搜索, 对应RegExp对象中的**multiline**属性 + +#### 关于multiline +g全局搜索 和 i忽略大小写都很容易理解 +`m`多行搜索, 有以下的特性 + ++ 字符串中没有换行符(可以是\r\n或者\n), m修饰符没有作用 ++ 正则表达式中没有^或$匹配字符串的开头或结尾, m修饰符没有作用 + +> 多行字符串的语法 +1. 可以在字符串中加入\n +2. 可以使用ES6的字符串模板语法 +```javascript +var str1 = `ab +cd` +// 等价于 +var str2 = `ab\ncd` +``` + +正则表达式多行匹配 +```javascript +const singleline = /^ab/ +const multiline = /^ab/m + +var str1 = `ef +ab` +var str2 = `ab +ef` + +singleline.test(str1) // false +multiline.test(str1) // true + +singleline.test(str2) // true +multiline.test(str2) // true +``` +对于具备multiline属性的正则对象 +`^`由原本的匹配整个字符串的开头, 变为匹配每一行的开头 +`$`由原本的匹配整个字符串的结尾, 变为匹配每一行的结尾 + +所以^和$都没有的, 添加m修饰符是不起作用的 + + +#### RegExp对象中的其他属性 ++ lastIndex : 当前表达式匹配内容的最后一个字符的下一个位置 ++ source : 正则表达式的文本字符串 + +### RegExp对象内置方法 + +#### test +test方法用于检测一个字符串是否匹配指定的正则, 返回true或false +```javascript +const reg1 = /\d/ +reg1.test('12') // true +reg1.test('12') // true +reg1.test('12') // true + +const reg2 = /\d/g +reg2.test('12') // true +reg2.test('12') // true +reg2.test('12') // false +``` +test的检测功能本身很简单, 但是正则加上`g`修饰符之后, 表现就有了变化 +当这个正则对象是全局搜索时 +每次执行test方法 ++ 如果返回true, 那么**lastIndex属性就会更新至当前匹配内容的下一个字符的索引** +比如第一次执行reg2.test('12'), 返回true, lastIndex就变为1 +下次执行test的时候, 就会从lastIndex开始找, 而不是从字符串的头部开始找 ++ 如果返回false, 那么**lastIndex属性就会重置为0** + +所以第三次调用reg2.test('12')的时候, 才会返回false + +#### exec +这个方法用于使用正则表达式对字符串执行搜索 + +如果字符串中找不到匹配的结果则返回null +否则返回一个数组 ++ 第一个元素是在字符串当中匹配到的子串 ++ 第二个元素是第一分组对应的子串(如果有第一分组) ++ 第三个元素是第二分组对应的子串(如果有第二分组) +…… + +![exec方法](/images/JavaScript/regex/reg.exec1.jpg) + +如果正则对象具备全局搜索, 特点和test类似 +也会更新RegExp对象的lastIndex + +![exec方法](/images/JavaScript/regex/reg.exec2.jpg) + +所以如果要逐个获取每次的匹配结果 +只要RegExp对象具备全局搜索, 循环执行exec即可 + +### String对象中的方法 + +#### search +方法返回第一个匹配结果的索引,查找不到返回-1 +search方法会忽略g标志,总是从字符串的开头进行检索 + +例如 +```javascript +var reg = /\d[a-z]/ + +'a1an2n'.search(reg) // 1 +'1234'.search(reg) // -1 +``` + +#### match +如果正则表达式不带g +那么与exec方法的执行结果完全相同 + +如果正则表达式带g +返回的就是逐次匹配结果构成的数组 +(相当于是逐次执行exec, 把每次执行结果的第一个元素拿出来, 全都放进一个数组里) + +![match方法](/images/JavaScript/regex/match.jpg) + + +#### split +split方法用于把一个字符串使用正则分隔为若干个字符串组成的数组 +```javascript +'1a2b3c'.split(/\d/) // ["", "a", "b", "c"] +``` +> 需要注意的是如果头部或尾部存在匹配该正则的部分, 就会多出一个空串 + +split的参数也可以传入一个字符串, 就会把字符串的内容作为原义字符放入正则当中执行处理 + + +#### replace +正则带g就替换所有, 不带就替换第一个 +```javascript +var str = "2018-11-26"; + +str.replace(/-/,'/'); // "2018/11-26" +str.replace(/-/g,'/'); // "2018/11/26" +``` + +replace的第二个参数还可以传入一个函数 + +**没有分组的情况** +例如, 我要把字符串里面所有的整数都找出来, 全都乘以2 +```javascript +// match是匹配到的字符串 +// index是匹配到的位置索引 +// origin是原字符串 +'a1b2c3'.replace(/\d+/g, (match, index, origin) => { + return match * 2 +}) +// "a2b4c6" +``` +match当然是字符串类型, 这里只是借用了js的隐式类型转换, 对字符串做乘法直接转换为Number, 无法完成转换的就是NaN + +**有分组的情况** +```javascript +// $1是第一分组, $2是第二分组 +'1a2b3c4d'.replace(/(\d)([a-z])/g, (match, $1, $2, index, origin) => { + return $1 * 2 + $2 +}) +// "2a4b6c8d" +``` +如果有更多分组, 那么函数被调用时就会传入更多参数 diff --git a/source/images/JavaScript/regex/match.jpg b/source/images/JavaScript/regex/match.jpg new file mode 100644 index 0000000000000000000000000000000000000000..172495acb08d5ddabe4b124b19d71684fad92b52 GIT binary patch literal 7602 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 F{{qGg3xogw literal 0 HcmV?d00001 diff --git a/source/images/JavaScript/regex/reg.exec1.jpg b/source/images/JavaScript/regex/reg.exec1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7665fd36e6b8cb553e468d23f8ca6a7961b94012 GIT binary patch literal 9933 zcmd6McQ{<%`tP1%j6TY!gBiU?Z&AkReMA?ciykF}6pUV?w}j|~=z>HNi4uY&gb*P_ z7lcF?-Ieb-=bqm=H|Kfoy?@-_U2C3a&wAT>*X;e4{h70|vl#%PqoJ(oxBnbq2oyvFJLfT+)BlA703a~r>}V&-@ROn@d=(vred*4p}UDvSPh83{$`$BN>@?g5Oq8J4pAy7gARtM={E>@uw0pSQZ1%)$G3%UcmL zpvZX8py*z2;hlY-_EQzG<2n=({3(QDgJ}@ZP$Ah@s`*qU{(gBqn|yb-BspLSV+Yp* zBHIA~$^&R%&wp={D6??!^X08U@Qc5W!MH=uMB$0g*+E|R`@^|@lU$x8{CF(h$5qo; z=|1$Igq&UpdPj02Ud7QDYxBjGnQD}=ikQ-D{J|t~+{%Qa$3Xd~)bM^cPW8v>42qx# z^?53pWMz%8Kga{YyN8!XTP<%9ZSPFo->&)8ul;P25?lW#QGo6G9qHz|f(osw;kPc_oy~vMmSyU5ohN3IANPpGO8i0)PM@CQePe>_^QqFf58*E~ zpGA9iT2HPl9|_WU^d^u!>gKYvXjYu$vxT>+jTDJb%Lf{BYCV@RrF$iw-*d%6vKPg_ zran{fN-h6=?s&Mn$W`K!+{Suh%D}#mEv0O*I;9jAx znh;;L_82#PKGP?O=l1&4+LeMqRwZe;%I9s-b|p;Vb!mYlYUR;(2}{0h1h;x5uCk*C zO*VA(fGPa$+7)}kmMfq^89h~6E-{nX`EZIw^;MPeiO7UtV$)cGjlsJ(gC2ze^&2zOEL5Q+%*MbtpvOX)nMYEAXg0r)UGq z`;9XN;M?l0JK%p-!8s>Ud&yG4LNM}f$WA8i!ZCb{xz5(bK<~cd0Iz_7yOH8SVWI)q z_+5xV2htQt+%}Zw*1PA_olT^l2_dYXDBnt+?7=Um%}f_E7eDnpAbp?j4m9+w5 z68j&DXIUn7Eq#4yMyNMsA;MQL^Z)EhtQ_H{{RXfySpitM{d)C;`zMyPXkkR)@HY73_3y#{!x*hw>zH?oLJV>u z6Ui(Q4@RE0HX8-R+GZ@j=e;sqCb+SQ?oPE8apa$fQD0My{!*;PJ~f29ux$Gi`E@jM z4*$w8BuT%1I;kYv`UC&bY);k;Xhyaespt+;$6!r^YeWI!mqsnR`js}geY$C)J3Nt; zA(`G+m||r;r|F&w4L^HG;V^Fv(vfs&E?LRgvh{WT7AKYS)89W%F$UDm6L5%~eUOA) znxC1E4Y$)a<6y;E+2vd*(Y{X&NV7i+J&!vsY5)v^0z^dr3`Y<(mu zv0R>t922H=NWkeWqO6GJROR+J2W9o7@l-Ep=}Su}BWVBHOcnuvAYdX83``3AEjgW+ zU}_o+1i>MuVnmA;$J_hj>^Ma)`4LhZI)-MU5~>b9X+?ieKrm(SCGz9=rEc`GoS6sJ zqlt`P3@x(u_XpKa-rne3X1;bXy@2~nLZrp8x&^J;eu9^FeSYiV1(3;)?$}+6?nAe6 zs?s*DNHHFGTZ<}nxuH^#RQP0uRUikB^(L?AbV}Zydh6UcTWOyGJ9)3+%e=#CeYNZ@ zW2?Du)I&zxza|T(cvkAJHSFmtMDWRPn`(bh>VO>|&QMs~F))4SRuONHy3{Xe8gyzT z!gH_b39U_3WjPkZ@bW3;L^e?*i{FM#$&sG@T^VEJbml;cs!f$+0-4&xo2zF4a;GWc z{o8K0iN*>o^(6EPvGe$CF_OsjZ+nOWUFObNqJ9ST&fM6KW2Escn&Sx=U1m;KQc4#1 z{aBUS*Y>Vsh@2k@eszzXZQL}nBn`2J_DzPx(UOukp_j!JBAKPx{MhAn+;T5ErZ_L` zkj6bPmDLIJE_0J3O&rp z#29n0eqP9U5LQ`y`mV|U3O_wjl!Jnq8kW0W^KsYU%-1OEa;03V#>}qTH`&o!swDc3 z?hQ0wybc}__gCp3#bb9i zMI7xKxF5QV3R1T#Fh$5|*()W&Te3&C{Y2l|-MXTZW_Rsp{i+LZgzLqO!4oz3^R>c$ zDW^WF+Mm}?`yB>e-fon~xbW{UZ=W`r+TJdS+oWcq&x0PVX0l8p{> z29>$?#!gFeHEDzVRlf|N;p>sKe5SPT(cd(NuB*4bE0ZO)AB>wcHIF@w8z9`t5{h2k zHR9|bwKGNU_hoD?kGM>EvJ9xS<}b8#rZ}-Hc@;G8+|v)Ne4%<^BO2Y-1o|YKWSo%D zD&s{-^0me^q%R`|#BwnpdRELw%d-<0SeX9sD0gSwI*gD??C|vM+nmUq0(p;H8t++j zJgQ{6gp+k24kuhL9FgZ~QVL1h`~*93u4pGg2htb+)^QKDD7ji$d7wtASNnFSi$f(4^YEV7<29RL z2E8BTiZA3UX6yH#`r?)R&nt)^;&(X%gU<`v-(R%OD+or+H&w+5VUNZWiW)@iIyN?k zd}jaANGf9z;1}5&u*yF_gfQQu6EDi3p8NRVy~mLlZLHdcwiWRj*=ZLHNF}}(U{XS( z({~aE$&3_7VP;cbZRi(fVN*V3qDm)K$3qMtKg@hfs6_#!c-E zu)(T?7O}@NT|nO;udu+!oT^o~hF&drAglJh)jTRiTYWw9C;B}JQI0jSax68l;8PJf zGfDrL0%He5c+g!Vz(_8#7j-@S#>b{32~J~w57vqQx!+ZS)w0Ezzfu2iHGMlEuls+Q zUCIxIe*R%zYux&DKNdU%E+QI4U{!(mLN;(aeeKe`${rStx(DT){DvZ6 zehDcWp&bDAL+a0*?aaW>^x&x2{w~n#_ChsK_3k_pjvjdiCFO%t!mdkx-}kFu!nPm_3Z;VfT%BwG;8%WNVo8mm?e@t zStbmG0hEhrf!M>i#vu~A9XKQN8?R4xLSVTQaf!kWm4JR~%V_mVjeKuB+R1%I6XD6+ z8jM#6i^4lIat+To(wg=ts@+uPs&R1hn_s6M>u&z} zNhy*8zt}F2P={A*#Cj(Blccp^O*UoY@Og1AXoSjjM6%WxoH3-}J@?g?LTN3yIt8nO zQZrUxr!spKp7sD3tWC0iujLLa8}3Z#66Y!+AXbUV%}?$W8Hs`u6K}>Wr9|Zu6OoIR zNF<#BGaB&^HRm!|Rq;Zjl`&Ri?_dMK_1RlE^}GITa)umQluZb{3KGJ52K1ttv4!S> z{uIs;_=xo{M;&@h5qRAfHUlHL;%98F>=WU2n_YUQIWIZejP?&*Q{(;;Y>W5y-6T5R*AWk=*8cBTTeubAu_x-6}A#cq?(1R zl#9ML7KSc~kFB?Egj;XzfFzjN4!}``77b3+JArttAEBU z)BDu2h2};KH^qFkRrd)HI~*65L%SNyOQL-D0nVD8*E*nfEyZ42s#^+qQzf5oY}9#a^J4}|JGnnerv&!klhr5$I0(i}g( z5pQ6NkH7#z#O?U7EIaWwV-C7;-O^KM8z{*PL~4WKIYWi!8K7smT(7ALCACfu*+*zP zHCxo6kiD){w);#ZjxJD|utL|k%FUTO7D7Q%HU4{X<)!x(N}y|`dGU1Sdkw|3+>P5C zq^2nvIbm2Zf!I zt0UY5kTl^-7iDLUfcqRA6)*-5Dn&S`jn z*s%HBbY)jVrON`|sSTRiw6qW;6;($76=)7J6SLqE$#mfd(p-z?A$wOXAPQQ}c)t@f zIQyZLNxT&?x1jX=wfa7dwtZ*{(0)o1fdK;NFL--Q^=mtz;9-`%;L)t^B_4C>+hGQVh|@~L zR9(;ayUBtKIM0r+hsugs*N&*r@@@2+0cq>u&`oPQ}RvD4tR7|97U@r^ld7N|X4P%bAN{U$HzQ$gpa|Ixk-guO44u_D(0`{dMAkM z20i%6IweTB?ydZ-AWSQG(h|yntZJeFi9OcIR!h{ku-%yT2%}#Qx;LZ&pP9?f<~ykDFGQ z@Bep$zlGls@6D6{S?gV-vHqV_J}5LgD&L&`BTHGQ;K`q@-8})$@lDM2$g+so>FAQ6sydjlYig8&*NA@Pms_b{j$l#(J_@gzz_p1!$3d*}uJk&8UJ32UMai{z>Q(K3$~_gZvqqABbQa8g`l5~3)Adpb?z zAG298A09)_y%a#4-wyEK$2r*a+sX6B-AE9j2i}2rzNsZP}R)n!%ak z4@t^{B9b0t(GOsKc5JpCNa2x{3+)%y`oeUW%TvA-uj7?`+%nRemX-GJ+q8eVjfabC-3%lBLV`( zyiSsXAKa=xOSTnU z3NWj)7uXaO?4IWtO+^F5?ar+bzd*v)_$c~yemiNHJeqhqm@?A%xrGv5sn)CAybNNP zN<78Sv@FuX-Vj>7R5g^a@R?Gz)t$(_(5y}1kX(_*XY1OYzZ+$#{ zx{lBn$PTcP&E|ilih(PX%>IkWf6)AIAcxRFJxyN5yk6R{tkJe1^`eaZ z6^6Bl2#=%=7HRd36s)|v_J+@0;)762sa4ooJU$Qi_^>@(aSIC~3uqYtjh2rH8FBS9 ztJKSjeWqBKCq4k31BET7%h~w?*wAcmso>e1)dK zqE8pTLGn&0dJJg>iWlkCUaZf;om_*yXkM)!31S=GX!8UExRUU4S#{3w%cS%MwAs$1 zJ$fNa`SrCYh7t)|wz5gDjSIWz6?zb;JkFzIplC7CVSgXhCYqZkdyyhHsE;%+XM$qG z98j=|{`P>1@9?8&nR(Kd;eAB6H^P<3m4`lx3~$r5h@C& zs$?eEi`D`BQL---AKci#34Adx@n*TOK<8*&?-^SDd10{qAQ!3n1W!V}_|ZS`R%b?J zRpi3W5OLepN0WkSouI}dgJe+Dn)KahS`C)MGuj)zd{b-`7Tw4m^Dw3ymDDd-~4`}w6!wzlW3N^Ey#j13xXiDy;! zdM0<(7HHoG7Py!kOI|7xwqt#DH8eRX<`=^m@cFKjGLZ>QzM02iC$s^pP!@TB34T)> zTO80;MDZ|snkF`JC4u5;$&H$MaxE`OOy%Y(ESg(kNntLgEF%-Es%P5cIbe>AD>n6S;z7H~?Gn75lwImI})l5BYH5lX^ zLP^=&^K2JGjs^tF4XzGApOIqJL7%hZ-!!mFJfaeOA^39nbti9F1znQ{>~!1VvYv+$ zaR4jX!jNz(xHWc#h$r7S(n!Jbc98;$?;bG}QJE${BwHr~wFf$Aeq~(B;i{CDmk;i$ zK<94t3)~E;M>d7|ROGVe*2+Yg`$1z9v$W^uGdJtgl5vgMymEbFA9Ab; zh`>F=RF;~OH2}y22+y68t;ZYw09Ul{@_2VLMfbt6EX36$jIoy?SDzjA_|I`*qn>=O z-b`t;_=q4*iIXZBV4oqlm-HuHkdE(t}H53-FMQBet#* zf_MN@E^51cRInlj#8i5?6`Hacpc?w_ZR&*f?P6Qq(-3&N`q~umDJ(2Ba;*sok0*DaJOdU=!7hYg z6!OxEj0N#HSz&-jV*x4z{YL0(IA_2a;DTTo^&Ete?(b9T&BwJ1u^_)+`uVd(#lft%O2NGOU$EVi!MI7i%q|=!AbVLwDhByLXdxK3ET=Z z2eu&l*6*+}@!Cp9@&&_{%bl7>{qd?E?J=tdJ4gM9c|0bH=Xhq*ovS!{ICHX%fWhOm zwi{jGV<{D=OVc0iqdl1ei(64`%hakp^0$*w;|hM0xO!o5tZ*qC&lvy_;Gv+9^$Rsm z=JaGS5ykhL)6+od5rzyiA+(4YyIqF4i3@q!DG8RegEp*h|*)u5S$O2U9fY z-3e4Lptrky=cOIVEkoDMU*)!pB8#BSncE*E?rwLv6dXRWSBHdAQ4P;-rxwDOL8dJ> zTDy>Q+)taGOD?pLVx(rWmc8zQM-XV7-t_Ltwx}w7f9q~g8)}J}*Wq#@3$KglUFcMq zNlyFy(d&>Gp9g|zo+;7YI^B%nzZ^snYY>{{WrdiAN~`pzU!Digj))B8J-D~=^{3|u z1@n(7oVM_lCqwV&JeJx!uG4)Sh}mR;zT-ybF)aH~|Wbe>n&sh{$;v&G6HU))_KBLt9 zD;!>;Rg<8aP3V4Y$sA6CUp;UxDL24TF33sk-xt4hWAO|KozZ6+vmq9&W4wCgP3(BQ z`GfSBb-vvz;F}{4!S8`~M{m$PyrR(Em6c{wO1z6$M;Yyxo!P2a1MxF)4dcC2yMGS{ z$W~PfA9b8=JVbE5*dPa9NW}RC^$Ii9<;%%oE~D@uN-& znK)uq$N9sMLH0T=l!G@bPtpE~16Z+Md6h^seR&6BP3U`sj)svt{F_<3;z#vf#F5=PdoQp+pP6nXb&} z`#LTe>o9bM+U-}{o$2mzTL)sA(GIypbpyQ3;G!ZyK5s{@6k|0{b{?=6c_vdGT7G&s z(~M74yEo|cMp0xmdkIf6OHVT?fqU^wsHISX?#rZnUsrm2;cH%ZSm$*xYEU<#(PPGH zb9k(F-<#(hNT_=~+-oAohA;eSecd|6&9E?8s&5|%LP18nCysWrxR~ApWu6@RqNXL) zjRi^?)u7Rq%hjBZW;m{eerB@DhDpEs5Mkg|qxnQRRC_;t*FxL5{$? zlyc-7kDUw8jR?~H;tX)ZUy)zGeL><)^`RlgO1g=oysU%7&gU(=#G#mB{c~>>oiUb> zDRm;c$ZOPrRFWYNefmyI%eM?UuyS$iM<3{|P{%J@Bw?&PAJ$wB#pcz<;^Z0>W9T{ft|$djz*MjKo?0vvG}ny kiic!iGj%+S7zJY+>=<-CmH&_Z>VHGm`G3D<=-K%H02M5KasU7T literal 0 HcmV?d00001 diff --git a/source/images/JavaScript/regex/reg.exec2.jpg b/source/images/JavaScript/regex/reg.exec2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ada18b9c52c410f2344d2a96a066158673b9ca80 GIT binary patch literal 19557 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 literal 0 HcmV?d00001