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