Python 使用lookhead/lookaround查找句子中的所有数字
这是一个句子('第#:'行不是句子的一部分): 我想在python中构造一个正则表达式,以返回每行的所有数字:Python 使用lookhead/lookaround查找句子中的所有数字,python,regex,Python,Regex,这是一个句子('第#:'行不是句子的一部分): 我想在python中构造一个正则表达式,以返回每行的所有数字: Line 1 returns: [1, 100, 2, 4.567] Line 2 returns: [11, 101, 21, 44.567] Line 3 returns: [111, 102, 211, 444.567] 我想到的正则表达式是: (?<=Number )\d* (? 对于转换为int和float: >>> try : ... map(
Line 1 returns: [1, 100, 2, 4.567]
Line 2 returns: [11, 101, 21, 44.567]
Line 3 returns: [111, 102, 211, 444.567]
我想到的正则表达式是:
(?<=Number )\d*
(?
对于转换为int
和float
:
>>> try :
... map(int,re.findall(r'[\d\.]+',s))
... except:
... map(float,re.findall(r'[\d\.]+',s))
...
[1.0, 100.0, 2.0, 4.567]
对于转换为int
和float
:
>>> try :
... map(int,re.findall(r'[\d\.]+',s))
... except:
... map(float,re.findall(r'[\d\.]+',s))
...
[1.0, 100.0, 2.0, 4.567]
您的lookback(?>>s=“数字1是100,数字2是4.567”
>>>关于findall(r“(?您的lookback(?>>s=“数字1是100,数字2是4.567”
>>>关于findall(r)(?trys=“111号是102,1211号是444.567”
trys=“111号是102,1211号是444.567”
行的格式是否良好?您是否期望任何123.456.789
或句尾编号为4.5。
?行的格式是否良好?您是否期望任何123.456.789
或句尾编号为4.5。
?
>>> s="Number 1 is 100, number 2 is 4.567"
>>> import re
>>> re.findall(r'\b[\d\.]+\b',s)
['1', '100', '2', '4.567']
>>> try :
... map(int,re.findall(r'[\d\.]+',s))
... except:
... map(float,re.findall(r'[\d\.]+',s))
...
[1.0, 100.0, 2.0, 4.567]
>>> s = "Number 1 is 100, number 2 is 4.567"
>>> re.findall(r"(?<=Number )\d+", s, re.I)
['1', '2']
>>> re.findall(r"(?<=Number )\d+|(?<=Is )[\d\.]+", s, re.I)
['1', '100', '2', '4.567']