Regular Expression(正規表現) Part17

2025/12/14(日) 11:14:59.12ID:Pr7gBHpv
(?!15080)([0-9]{5})
1508015080は50801にマッチ
15079は15079にマッチ

(?<!15080)([0-9]{5})
1508015080は15080にマッチ ←ここ
15079は15079にマッチ
2025/12/14(日) 11:24:53.49ID:C4yAKXLX
よくある使い方
((?!abc).)+
abcでない文字列
2025/12/14(日) 11:28:30.93ID:C4yAKXLX
1文字の場合は [^a]+
これの複数文字パターンってこと
352デフォルトの名無しさん
垢版 |
2025/12/14(日) 11:47:42.73ID:4RDsvJB6
うーん、ちょっとアサーションについて誤解していたところがあったかも。考え直してみますわ。
2025/12/14(日) 12:38:24.68ID:C4yAKXLX
順序を逆にすると本体部分で位置が進むので
([a-z](?!abc))+
abcd → abcd ;先頭はabcだがaの後ろにはabcがないのでaにもマッチする
xabcd → abcd
[a-z]+(?!abc)なら
xabcd → xabcd ; [a-z]+でxabcdがマッチしその後ろにはabcが無いので
[a-z]+(?<!bcd)なら
abcd → abc ; abcdと進んでいくとbcdにマッチするので逆行してabcでストップする
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況