我想使用REGEX将时间和日期与此字符串分开,因为我觉得这是我分开它的唯一方法。但我对如何做到这一点并不熟悉,也许有人可以帮助我。
原始字符串:
“您的商品已于2016年9月1日下午3:34在TEXAS,MT 59102中邮寄或邮箱发送”
我希望实现/填充输出:
lv_time =下午3:34
lv_date = 2016年9月1日
这是我试图做的代码,但我只能这样做:
lv_status =您的商品已在
中的邮箱中或邮箱中递送lv_time = 3
lv_date =:2016年9月1日晚上34点,在MTXAS,MT 59102。
这是我到目前为止的代码:
DATA: lv_status TYPE string,
lv_time TYPE string,
lv_date TYPE string,
lv_off TYPE i.
lv_status = 'Your item was delivered in or at the mailbox at 3:34 pm on September 1, 2016 in TEXAS, MT 59102.'.
FIND REGEX '(\d+)\s*(.*)' IN lv_status SUBMATCHES lv_time lv_date MATCH OFFSET lv_off.
lv_status = lv_status(lv_off).
答案 0 :(得分:3)
你问过它,来了:
\b((1[0-2]|0?[1-9]):([0-5][0-9]) ([AaPp][Mm])) on (January|February|March|April|May|June|July|August|September|October|November|December)\D?(\d{1,2}\D?)?\D?((?:19[7-9]\d|20\d{2})|\d{2})
以HH:MM am/pm
格式接受时间,并在Jan-Dec, dd 1970-2999
中接受日期。
每个部分都在自己的小组中捕获。
该演示显示了一个允许缩写月份名称的版本: