2016-02-24 52 views

回答

1

看來你正在使用正則表達式PCRE來獲得可前面有數學運算中(...)有沒有內在的()的數字。

使用

(?:\(|(?!^)\G)\K[+*\/-]?\d+(?=[^()]*\)) 

regex demo

說明:

  • (?:\(|(?!^)\G)\K - 查找(或以前成功的比賽結束,並忽略當前存儲在內存中的匹配文本(與\K
  • [+*\/-]? - 一或零運營
  • \d+ - 一個或多個數字
  • (?=[^()]*\)) - 但只有隨後以外(和零個或多個字符)到閉合)

注意,在你的正則表達式,你忽略了數學運算符,因爲它們是\K之前,你會發現在數學運算符或(後的數字(每個成功的比賽結束後,這就是爲什麼你17951