我正在尝试编写一个正则表达式来追加“Total”后面的值,但我不知道如何处理回车,这意味着我正在搜索2个单独的行。有谁知道最好的方法来解决这个问题?
Taxes&Charges↵
↵
£ 35.97↵
↵
Total↵
£ 198.98↵
↵
£ 35.97↵
↵
↵
Total↵
£ 333.98
答案 0 :(得分:9)
在正则表达式中,您应该使用\r
来捕获回车符,并使用\r\n
来捕捉换行符
答案 1 :(得分:3)
您应该使用正则表达式选项点匹配换行符(如果支持)。
E.g。在.NET
中,您可以使用RegexOptions.Singleline
。它指定单行模式。更改点(.
)的含义,使其匹配每个字符(而不是除\n
之外的每个字符。)
下一个表达式:
Regex ex = new Regex(@"(?<=Total\r\n)£\s?[\d.]+", RegexOptions.Singleline);
将匹配测试示例中的£ 198.98
和£ 333.98
值。
答案 2 :(得分:1)
将s
修饰符添加到正则表达式中。 s
表示将字符串视为单行。为什么不先用str_replace
删除回车?糟糕,没有PHP标签。
答案 3 :(得分:0)
如果添加s,表示单行,则可以(例如,如果窗口)使用
^Total\r\n£([ 0-9.]+)\r\n"
提取总值。
(未经测试,括号应确保其显示为组值)