Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次の正規表現があります。
/^(\d{1,11})((?:(?:c?o|co?).*)?.*)$/i
次のような文字列に一致します。
125******* or 125co****** or 125CO*******
次で始まる部分文字列を除外したいと思います。
125af***** or 125AF****** or 125f****** or 125AF********
前もって感謝します
これを試して
^(?>\d{1,11})(?!af|a|f)((?:(?:c?o|co?).*)?.*)$
ここで正規表現を参照してください
正規表現に 2 つの変更を加えました。
先頭に を追加して、最初のグループをアトミック( ) にしました。これは、すでに一致した数字へのバックトラックを避けるためです。(?>\d{1,11})?>
(?>\d{1,11})
?>
af、a、または f の後に続くものがないことを確認するために、否定的な先読み を追加しました。(?!af|a|f)これが機能するためには、最初のグループをアトミックにする必要があります。これにより、最後の桁を実際に処理できるようになります。(それ以外の場合はバックトラックし、最後の桁の前を見て、すべて問題ないと判断し、残りの文字列を最後の と一致させます.*)
(?!af|a|f)
.*