動かざることバグの如し

近づきたいよ 君の理想に

特定の文字から始まる文字だけマッチさせる正規表現

特定の文字から始まる文字だけマッチさせる正規表現を書きたい

「$」記号の後に整数が来る。例えば

¢100 makes $1

という例文があったとして、$1を抽出したい。

この場合は肯定後読み(Positive lookbehind)正規表現機能を使う必要がある。

let str = "¢100 makes $1.";
alert(str.match(/(?<=\$)\d+/))
// 結果: 1

(?<=Y)X は X の前に Y がある場合にのみマッチすることを意味する

逆に特定の文字から始まらない文字だけマッチさせる正規表現

否定後読み(Negative lookbehind)を使う。 (?<!Y)X は X の前に Y がない場合にのみマッチすることを意味する

let str = "¢100 makes $1.";
alert(str.match(/(?<!\$)\d+/))
// 結果: 100

参考リンク