如何用正则表达式获取倒数第二个逗号空格前的内容?
你之前用的([^,]+),[^,]+$为啥不行?因为[^,]+只能匹配不带逗号的片段,但你的目标内容里每个日期本身就带逗号(比如Jan 23, 2023),这个正则只能抓最后一个逗号前后的零碎内容,根本达不到需求。
给你几个靠谱的解决办法:
1. 正则替换法
直接把最后一个, (逗号加空格)以及后面的所有内容删掉就行,用这个正则:
,\s.*$
举个Python里的例子:
import re input_str = "Jan 23, 2023, October 23, 2022, 2 October 23, 2022, Jan 23, 2023" output_str = re.sub(r',\s.*$', '', input_str)
跑出来就是你要的结果。
2. 正则捕获法
用正向预查匹配到最后一个, 之前的所有内容,正则是:
^.*(?=,\s.*$)
直接取这个正则的匹配结果就行,它会自动停在最后一个, 的前面。
3. 纯字符串操作(不用正则)
要是你不想用正则,找最后一个, 的位置然后截取前面的内容更简单,比如Python里这么写:
input_str = "Jan 23, 2023, October 23, 2022, 2 October 23, 2022, Jan 23, 2023" last_sep_index = input_str.rfind(', ') output_str = input_str[:last_sep_index]
这个方法逻辑直白,不容易出错。
内容的提问来源于stack exchange,提问作者Martín Mas
相关产品推荐
相关产品推荐

