<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          正則表達(dá)式匹配"非"

          共 982字,需瀏覽 2分鐘

           ·

          2021-11-13 00:49


          首先,正則表達(dá)式的"非",代表不想匹配某個(gè)字符。


          比如字符串 helloword123,/[^0-9]+/g?可以匹配非數(shù)字,即匹配結(jié)果為 helloword;


          同樣的,/[^he]+/g?可以匹配非?h?非?e?的字符,匹配結(jié)果為 lloword123;


          那么?/[^hello]/g?呢?乍一看可能會(huì)以為能匹配 word123,其實(shí)不然,[^]?內(nèi)的多個(gè)字符是"或"的關(guān)系存在的,即它們并不是一個(gè)整體,/[^hello]/g?表示 非?h?非?e?非?l?非?o,并不能理解為 非(hello),所以匹配結(jié)果是 w 和 rd123。


          道理我們都懂,可我們就是想匹配非某個(gè)字符串呢?比如某一字符串若是含有 hello 則無匹配,若是不含 hello 則匹配,寫成?[^hello]?是顯然不行的,[^(hello)]?呢?其實(shí)不起作用。


          這時(shí)我們需要用到正則表達(dá)式的斷言——?(?!pattern)?零寬負(fù)向先行斷言 或者?(??零寬負(fù)向后行斷言 均可。


          零寬斷言是正則表達(dá)式中的難點(diǎn),所以重點(diǎn)從匹配原理方面進(jìn)行分析。零寬斷言還有其他的名稱,例如"環(huán)視"或者"預(yù)搜索"等等,不過這些都不是我們關(guān)注的重點(diǎn)。


          這里只介紹一種寫法,大家可以都去嘗試一下。

          /^((?!hello).)+$/


          由于斷言?(?!hello)?是不占位的,后跟的 . 在原位置匹配任意字符,再用括號(hào)將其括起來,用?+?重復(fù)一次或多次,前后加上?^?和?$,若是字符串中存在 hello,則匹配到 h 字符之前的時(shí)候,斷言?(?!hello)?匹配失敗,正則匹配結(jié)果為 false, 若是字符串中不存在 hello,則匹配結(jié)果是整個(gè)字符串。


          用法實(shí)戰(zhàn)

          1、匹配?&?和?;?之間不含有 test 的字符

          str = "hello &test1;test&qout;";

          正則表達(dá)式:

          /&((?!test).)+;/g

          匹配結(jié)果: ?和?&qout;


          2、匹配不含有??標(biāo)簽的?

          ?標(biāo)簽

          str?=?"<div?id='1'><img?class='xx'>div><div?id='1'><input?type='text'>div>";

          正則表達(dá)式:

          /<div[^>]*>((?!<img[^>]*>).)+div>/g

          匹配結(jié)果:

          <div?id='1'><input?type='text'>div>


          瀏覽 126
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  三级黄片毛片 | 美女做爱| 国产91在线视频 | 久热久操 | 国产一级特黄A片 |