特定の文字から始まる文字だけマッチさせる正規表現を書きたい
「$」記号の後に整数が来る。例えば
¢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