正規表示法一直都是我很推大家學習的東西,在字串處理上真的有很大很大的幫助以及好處,前幾天朋友工作上需要用到正規表示法處理字串,目的是:「在一個字串中找出連續數字 6~8 個」,這邊要注意的是,連續九個的話是不要的。
例如: 12345 XD Hi12345678ab666666cd987654321
要找出: 12345678 和 666666;但不可以找出 987654321 中的 98765432 或者 87654321
於是我第一個想到的東西就是 Lookahead 和 lookbehind。
先來看一下如果直接使用 \d{6,8} 會取出什麼:Visual Regex Tester
可以看到,直接使用 \d{6,8} 是會連後方的 987654321 取出來。
最後我給的的解法是:(?<!\d)\d{6,8}(?!\d),結果:Visual Regex Tester
重點就在前面的 (?<!\d) 和後面的 (?!\d) 這兩個表示法,他們分別代表的是
negative lookbehind 和 negative lookahead