【问题标题】:Parsing string in python3 using regex [duplicate]使用正则表达式在python3中解析字符串[重复]
【发布时间】:2016-07-29 12:55:35
【问题描述】:

我想解析其中包含长度和精度的字符串,例如:'(10,2)',我需要取出长度和精度。

需要输出为:

_len = 10, _pre = 2

我在下面尝试过,但它不起作用,

>>> import re
>>> my_str = 'numeric(10,2)'
>>> m = re.match(r'\d+,\d+', my_str)
>>> m
>>> m = re.match(r'(\d+,\d+)', my_str)
>>> m
>>> m = re.match('\((+d),(+d)\)', my_str)
>>> m = re.match('\((+d),(+d)\)', my_str)
Traceback (most recent call last):

【问题讨论】:

标签: python python-3.x


【解决方案1】:

re.match 从行首开始搜索,这就是你没有得到任何匹配的原因。

改用re.search

>>> m = re.search(r'(\d+),(\d+)', my_str)
>>> if m:
...     _len, _pre = map(int, m.groups())
... 
>>> _len, _pre
(10, 2)

【讨论】:

  • 您可以在正则表达式中使用捕获组来避免拆分。
  • @DanielRoseman 好建议
猜你喜欢
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多