繁体   English   中英

带回车的正则表达式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM