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

时间:2010-10-18 10:13:31

标签: objective-c regex string

我最后一次使用正则表达式是2年前,即便如此,我认为这不是最简单的事情!

有人能告诉我如何将这个文本分成三组(数量,名称,价格)吗?

  1 Corn Dog             5.00
  3 Corn Dog            15.00
    @ 5.00
  2 Diet Cola            4.00
    @ 2.00

我自己在http://www.regular-expressions.info/reference.html之后尝试过,但这些符号势不可挡!我很想开始做一些时髦的字符串操作作为计划B。

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

2 个答案:

答案 0 :(得分:1)

一个方便的工具:Online RegEx Tester

我会从^\([:digit]+\)[:space:]*\(.*\)[:space:]\([:digit:]+\.[:digit:]{2}\)

开始

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

有不同的规则

答案 1 :(得分:1)

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

^\s*(\d+)\x09+([^\x09]+)\x09+\s*(.+)\s*$

如果您将捕获组称为正则表达式的搜索部分,则可以将捕获组称为\1\2\3,您可以将捕获组称为$1$2$3如果您将其称为正则表达式的替换部分。

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