2012-12-06 52 views
1

我試圖匹配以下行匹配行:試圖用正則表達式

801. Our origination charge (Includes Originat ion Point (s) % or $) (f rom GFE #1)$ 1,169.00 

我創造了這個正則表達式:

.*801\..*\(f\s?rom.*$\s?(.*)

這是什麼應該做的是:

  1. 將任何東西匹配至801.
  2. 匹配任何東西,直到(F \ S ROM
  3. 匹配任何東西,直到$
  4. 可選空間
  5. 比賽排線的其餘部分

我相信這打破了我的字符串下來的方法是像這樣?

  1. 我們首創費(包括Originat離子點(S)%或$)
  2. (f光盤GRE#1
  3. (無)
  4. 1,169.00

然而事實並非如此。我的正則表達式不匹配這個字符串。任何想法爲什麼?

回答

7

逃離你的美元符號$。這是行尾anchor

.*801\..*\(f\s?rom.*\$\s?(.*) 
1
.*801\..*\(f\s?rom.*\$\s?.*

轉義$字符。並在最後刪除括號。此正則表達式與字符串完全匹配。

+1

我假設圓括號在那裏故意作爲一個捕獲組,雖然沒有明確規定。 – Wiseguy