iT邦幫忙

1

Regular Expression(正規表達式)中,Lookbehind的替代方法

pcw 2018-08-07 13:28:22839 瀏覽

用了二年的Regular Expression,直到最近看到這篇文章http://darkk6.blogspot.com/2017/03/regexp-lookahead-lookbehind.html 才知道LookaheadLookbehind的用法。

請教,有一段字串12345 XD Hi12345678ab666666cd98765432,要找出6位到8位數,但不可以是9位數。
因此會找到12345678666666;但不可以找出 987654321 中的 98765432 或者 87654321

在支援Lookbehind的情況下,Pattern可以設為(?<!\d)\d{6,8}(?!\d)
請教,若系統不支援Lookbehind,Pattern要如何設定?

詳細條件爲何?請仔細列舉,如:
1) 字串長度爲6-8
2) 目標字串後有[a-z]
pcw iT邦研究生 3 級 ‧ 2018-08-09 08:20:38 檢舉
就是(?<!\d)\d{6,8}(?!\d)
但不可以用lookbehind

\d{6,8} 就是6~8位的數字
(?!\d)這邊基本上不用動
要修改的是(?<!\d),因為VBA不支援lookbehind的寫法。

尚未有邦友回答

立即登入回答