首页 > 解决方案 > 什么正则表达式将匹配字符串的两个部分(在符号之间但结果中没有这些符号)?

问题描述

我在 stackoverflow 中寻找答案,但找不到像我这样的案例。对我来说,正则表达式真的很难。

我有一个这样的字符串(不带引号(“)):1)"09:10,10:00" 2)"11:40,12:35"

对于每一个,我需要用数字部分填充四个变量(不带引号(“))1) variable1_hourFrom="09" variable2_hourTo="10" variable3_minuteFrom="10" variable4_minuteto="00"

2) variable1_hourFrom="11" variable2_hourTo="12" variable3_minuteFrom="40" variable4_minuteto="35"

我正在使用 BigQuery 中的正则表达式函数REGEXP_EXTRACT(variable, r'regex_expresion')

感谢您的帮助和问候!

标签: regex

解决方案


使用括号对匹配项进行分组。match.groups()方法将返回匹配的项目。用 Python 回答演示:

import re

items = "09:10,10:00","11:40,12:35"

for item in items:
    m = re.match(r'(\d\d):(\d\d),(\d\d):(\d\d)',item)
    hourFrom,minuteFrom,hourTo,minuteTo = m.groups()
    print(hourFrom,minuteFrom,hourTo,minuteTo)
09 10 10 00
11 40 12 35

推荐阅读