Python 带小数点后一位的数字和数字正则表达式

Python 带小数点后一位的数字和数字正则表达式,python,regex,Python,Regex,使用 我的正则表达式是: (?:'\d+[A-Za-z ]*)(\d+|\d+\.) 它使用g全局修饰符 我怎样才能抓住所有的机会 10 十二, 以及 2.5 3.5 现在我被困在如何获取第一个小数位上,例如2.5 我正在匹配以下示例字符串: ['Table: Waiter: kenny', '======================================', '1 GRILLED AUSTRALIA ANGU **29.00**', '----

使用

我的正则表达式是:

(?:'\d+[A-Za-z ]*)(\d+|\d+\.)
它使用g全局修饰符

我怎样才能抓住所有的机会 10 十二,

以及 2.5 3.5

现在我被困在如何获取第一个小数位上,例如2.5

我正在匹配以下示例字符串:

['Table:     Waiter: kenny', 
 '======================================',
 '1      GRILLED AUSTRALIA ANGU    **29.00**',
 '----------------------------------',
 'TOTAL       29.00', 'CASH        29.00', 
 'CHANGE         0.00', 
 'Signature:__________________________', 
 'Thank you & see you again soon!']


 ['1      Carrot Cake                **2.50**',
  '----------------------------------', 
  'TOTAL        2.50', 'CASH         2.50',
  'CHANGE         0.00', 
  '====================================',
  'Thank You and',
  'See You Again!']

 ['Table:     Waiter: kenny', 
  '======================================',
  '1      SAUSAGE WRAPPED WITH B    **10.00**',
  '1      ESCARGOT WITH GARLIC H    **12.00**',
  '1      PAN SEARED FOIE GRAS      **15.00**',
  '1      SAUTE FIELD MUSHROOM W     **9.00**', 
  '1      CRISPY CHICKEN WINGS       **7.00**',
  '1      ONION RINGS                **6.00**',
  '----------------------------------',
  'TOTAL       59.00', 'CASH        59.00', 
  'CHANGE         0.00', 
  'Signature:__________________________',
  'Thank you & see you again soon!']


['1      Carrot Cake                **2.50**', 
'1      Chocolate Cake             **3.50**',
'----------------------------------', 
'TOTAL 
6.00', 'CASH                          
6.00', 'CHANGE         0.00', 
'===================================='
, 'Thank You and', 'See You Again!']

您可以使用非捕获组:然后很容易将数字与小数点后两位进行匹配:

(?:\d[\s\w]+?)(\d+\.\d\d)
试试这个:\d+[.]?\d*

匹配所有带或不带小数点的数字的


但是,最好不要尝试在文本处理中使用正则表达式。因为这是结构化的,所以您可以使用正则表达式来识别行的结构,使用拆分/awk将行拆分为列,然后从列开始。

要仅获取菜单项的价格,请使用:

(?:[a-zA-Z]+\s[a-zA-Z]+\s+)(\d+\.\d\d)(?:')

仅10、12、2.5和3.5或所有货币值?数字是什么?与数字有何区别?X项XX.XX中的所有货币值,如10、12、2.5等;只有括号中的那一个,那么9、59、15等等呢?我已经像上面那样编辑了字符串。带星号的是我想要的那些他也想要订购的物品的数量?例如菜单项前面的1?@depperm可能是。但问题不是这样的,你不必把所有的文本处理都塞进正则表达式中。明白了!回答谢谢BRO@KaelTee请随意投票和/或接受此答案。不要这样做!谢谢兄弟