JSのデモ:^と*を含む正規表現は1文字を失うでしょうか?
// words not ending with abc
var r = new RegExp("(.*)[^(?:abc)]$")
var s = 'zzxxxyy'
console.log(r.exec(s))
が出力:
[ 'zzxxxyy', 'zzxxxy', index: 0, input: 'zzxxxyy' ]
zzxxxyy
JSのデモ:^と*を含む正規表現は1文字を失うでしょうか?
// words not ending with abc
var r = new RegExp("(.*)[^(?:abc)]$")
var s = 'zzxxxyy'
console.log(r.exec(s))
が出力:
[ 'zzxxxyy', 'zzxxxy', index: 0, input: 'zzxxxyy' ]
zzxxxyy
[^(?:abc)]
が(
または?
または:
かa
ではない単一の文字に一致するのではなく、group(1)
zzxxxy
である理由またはb
またはc
または)
です。これは[^)(abc:?]
に相当します。
したがって、regexpを使用して、 '。* )[^ a] [^ b] [^ c] '、どうやって? '(。*)(?abc)'は '1abc'とまだマッチします。 –
@JiacaiLiu 'if(!/ abc $ /。test(文字列))'。 JSコードで結果を無効にします。 – melpomene
それは動作しますが、私の状況ではregexpだけが使用できます。 –
https://regex101.com/r/sIbCyd/3 - [説明]パネルを注意深く読んでください*。 –
[文字クラス]内でグループを使用することはできません(http://www.regular-expressions.info/charclass.html) – Bergi