我想寫一個正則表達式額外的值,它後面的單詞'總',但我不知道如何處理回車這意味着我在2個單獨的行搜索。有誰知道解決這個問題的最好方法嗎?正則表達式與回車
Taxes&Charges↵
↵
£ 35.97↵
↵
Total↵
£ 198.98↵
↵
£ 35.97↵
↵
↵
Total↵
£ 333.98
我想寫一個正則表達式額外的值,它後面的單詞'總',但我不知道如何處理回車這意味着我在2個單獨的行搜索。有誰知道解決這個問題的最好方法嗎?正則表達式與回車
Taxes&Charges↵
↵
£ 35.97↵
↵
Total↵
£ 198.98↵
↵
£ 35.97↵
↵
↵
Total↵
£ 333.98
添加s
修改到你的正則表達式。 s
表示將字符串視爲單行。爲什麼不先用str_replace
刪除回車?糟糕,沒有PHP標籤。
在正則表達式,你應該使用\r
趕上回車和\r\n
搭上換行符
如果加s,以表示單行,就可以(例如,如果Windows)的使用
^Total\r\n£([ 0-9.]+)\r\n"
來提取總值。
(未測試,括號應該確保它顯示爲一組值)
您應該使用正則表達式選項點匹配換行符(如果支持的話)。
例如在.NET
你可以使用RegexOptions.Singleline
這個。它指定單線模式。更改點的含義(.
),使其匹配每個字符(而不是除\n
之外的每個字符)。
下一個表達式:
Regex ex = new Regex(@"(?<=Total\r\n)£\s?[\d.]+", RegexOptions.Singleline);
將匹配從測試例子£ 198.98
和£ 333.98
值。
你正在使用哪種正則表達式? – kennytm 2011-04-03 22:18:30
這完全取決於你如何讓你的文本進入應用程序 - 例如一次一行或整個文件中的字符串值。此外,它取決於你使用的語言 - 雖然大多數正則表達式實現多少有相同的選項來處理多行,但調用它們的方式是不同的。 – LHMathies 2011-04-03 22:20:00
你是什麼意思「額外的價值」? – intuited 2011-04-03 22:22:09