[英]Regular expression with carriage return
我正在尝试编写一个正则表达式来追加“Total”之后的值,但我不知道如何处理回车,这意味着我正在搜索2个单独的行。 有谁知道最好的方法来解决这个问题?
Taxes&Charges↵
↵
£ 35.97↵
↵
Total↵
£ 198.98↵
↵
£ 35.97↵
↵
↵
Total↵
£ 333.98
在正则表达式中,您应该使用\\r
来捕获回车符,并使用\\r\\n
来捕获换行符
您应该使用正则表达式选项点匹配换行符 (如果支持)。
例如,在.NET
您可以使用RegexOptions.Singleline
。 它指定单行模式。 更改点( .
)的含义,使其匹配每个字符(而不是除\\n
之外的每个字符)。
下一个表达式:
Regex ex = new Regex(@"(?<=Total\r\n)£\s?[\d.]+", RegexOptions.Singleline);
将从您的测试示例中匹配£ 198.98
和£ 333.98
值。
将s
修饰符添加到正则表达式中。 s
表示将字符串视为单行。 为什么不先用str_replace
删除回车? 糟糕,没有PHP标签。
如果添加s,表示单行,则可以(例如,如果窗口)使用
^Total\\r\\n£([ 0-9.]+)\\r\\n"
提取总值。
(未经测试,括号应确保其显示为组值)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.