yus*_*suf 2 python regex string
我正在使用(char.*?char2)它来提取以字符串开头char1和char2以字符串结尾的子部分.
现在我想从字符串中提取温度信息,例如(40°C,-30°C,80°F).在这种情况下,我的正则表达式应该通过考虑+和的概率来定义带有任何数字字符的起始字符-,并且用°C或结束°F,并且它们之间不应该有任何字母,并且它还应该whitespace在数字和结束可能性.
我该如何定义这样的正则表达式?
我已经检查了这一点,正则表达式从字符串中提取温度和温度范围,但答案略有不同的目标.
(\d+) ?°([CF])
第一组应具有温度,第二组应具有温度,第二组为C或F.
扩展它以允许更多变化:
([+-]?\d+(\.\d+)*)\s?°([CcFf])
Run Code Online (Sandbox Code Playgroud)
这将匹配任何这些输入,允许多个空格,或制表符,小写单位,小数点和符号.
示例python程序:
import re
string = '''
20°C
2 °F
It was cold, 2 °F in fact.
30 °C
-40 °C
+2.3^I°c
+2.3°c
10°C
'''
pattern = r'([+-]?\d+(\.\d+)*)\s?°([CcFf])'
print(re.findall(pattern, string))
# Output:
# [('20', '', 'C'), ('2', '', 'F'), ('2', '', 'F'), ('30', '', 'C'),
# ('-40', '', 'C'), ('+2.3', '.3', 'c'), ('+2.3', '.3', 'c'),
# ('10', '', 'C')]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |