Objective c 如何使用正则表达式拆分收款收据?

Objective c 如何使用正则表达式拆分收款收据?,objective-c,regex,string,Objective C,Regex,String,我最后一次使用正则表达式是在两年前,即使在那时,它也不是我认为最简单的东西 有谁能告诉我如何把这篇文章分成三组(数量、名称、价格) 我自己也尝试过,但符号越来越强大!我很想开始做一些时髦的字符串操作,作为计划B 我使用的是Objective-C,所以我可能会使用NSPredicate来执行表达式。一个方便的工具: 我将以^\([:digit]+\)[:space:*\(.*\)[:space:\([:digit:+\.[:digit:{2}\)开头。 请记住,不同的正则表达式编译器对反斜杠有不同

我最后一次使用正则表达式是在两年前,即使在那时,它也不是我认为最简单的东西

有谁能告诉我如何把这篇文章分成三组(数量、名称、价格)

我自己也尝试过,但符号越来越强大!我很想开始做一些时髦的字符串操作,作为计划B

我使用的是Objective-C,所以我可能会使用NSPredicate来执行表达式。

一个方便的工具:

我将以
^\([:digit]+\)[:space:*\(.*\)[:space:\([:digit:+\.[:digit:{2}\)开头。

请记住,不同的正则表达式编译器对反斜杠有不同的规则
()[]*+|

我更喜欢这个正则表达式:

^\s*(\d+)\x09+([^\x09]+)\x09+\s*(.+)\s*$
如果将捕获组称为正则表达式的搜索部分,则可以将捕获组称为
\1
\2
\3
,如果将捕获组称为正则表达式的替换部分,则可以将捕获组称为
$1
$2
$3


但是,我的正则表达式要求您用一个或多个制表符分隔每个字段。我这样做是因为用空格分隔会产生歧义,因此正则表达式会更长。

注意,我的正则表达式不会匹配“@5.00”行,但我假设它们只是噪音,因为总价格和数量在匹配的行上,所以可以计算每个价格。
^\s*(\d+)\x09+([^\x09]+)\x09+\s*(.+)\s*$