js Abbbは前向きの正則マッチング例に逆方向である.

905 ワード

コアコード:


var s1 = 'acritan';
var s2 = 'bassarisk';
var s3 = 'commotive';

//      "abba"      

var r = /^(?!.*?(.)(.)\2\1)/i;

alert(r.test(s1)); // true
alert(r.test(s2)); // false
alert(r.test(s3)); // false
零幅断言(?!exp)
前言をひるがえす
何が先決かは逆ですが、(?!exp)を使って後ろに付いてくるのはexpではありません.
phpの例:
主に実例を通して皆さんにこの正則の役割を説明したいです.

$str="abcgwcab";
$parent='/bc(?!ww)gw/';
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
  :
int 1
array (size=1)
 0 => string 'bcgw' (length=4)
*/
解析:まず文字列がbcを含むかどうかを判断し、その後はwwではないと判断し、最後にgwに一致する.逆断言の前後に、他の整合条件を加えることができます..*?これは*が非空の文字にマッチする任意の長さです.つまり、欲張りではないということは、最少の文字にマッチするということです.例えば、1文字です.