文字列"pattern_A"と"pattern_B"の両方を含まない文字列にマッチさせる正規表現。
/^(?!.*pattern_A)(?!.*pattern_B).*$/
例:
pattern_Apattern_B ←マッチしない
pattern_Bpattern_A ←パターンが前後してもマッチしない
pattern_Cpattern_A ←片方だけでもマッチしない
pattern_Dpattern_Epattern_F ←マッチする
否定先読みで先頭位置に位置マッチすることで、複数の文字列をチェックできる。否定と肯定を組み合わせることも可能。
s/(?<=\d)(?=(\d{3})+$)/,/
例:(置換前)
1
123
1234
例:(置換後)
1
123
1,234
123,456
1,234,567
123,456,789
1,234,567,890
例:
<div>abc<div>def</div>ghi<div>jkl<div>mno</div>pqr</div>stu</div>
否定先読みでマッチ対象ではない文字列位置にマッチしたのち、.で一文字だけ消費させて次の文字をチェックさせるテクニック。
・文章の中に複数種類の単位を持つ数字列がたくさんあるうち、特定の単位だけ除外してマッチする。(例:パック、kg、倍を除外したい)
/[\d.]++(?!パック|kg|倍)/
卵1パック(657.8g)の値段は225円、1.98ドルです。10kg買うと値段は15.202倍になり、約3420円、約30ドルです。
単位が大量にあるので全体を把握することができないのだが、少なくとも特定の単位だけは除外したいことが分かっている場合に使う。