带回车的正则表达式

cut*_*ert 14 regex

我正在尝试编写一个正则表达式来追加"Total"之后的值,但我不知道如何处理回车,这意味着我正在搜索2个单独的行.有谁知道最好的方法来解决这个问题?

Taxes&Charges?
?
£ 35.97?
?
Total?
£ 198.98?
?
£ 35.97?
?
?
Total?
£ 333.98
Run Code Online (Sandbox Code Playgroud)

pco*_*fre 14

在正则表达式中,您应该使用它\r来捕获回车并\r\n捕获换行符


Ale*_*lex 6

您应该使用正则表达式选项点匹配换行符(如果支持)。

例如,.NET您可以RegexOptions.Singleline为此使用。它指定单行模式。更改点 ( .)的含义,使其匹配每个字符(而不是除 之外的每个字符\n)。

下一个表达式:

Regex ex = new Regex(@"(?<=Total\r\n)£\s?[\d.]+", RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)

将匹配£ 198.98£ 333.98从测试示例值。


Dej*_*vic 2

s将修饰符添加到您的正则表达式中。s表示将字符串视为单行。为什么不str_replace先去掉回车符呢?糟糕,没有 PHP 标签。