如何从指定字符串中提取下划线后可接_freq的目标单词?
解决字符串提取问题:匹配下划线后的目标单词
针对你的需求,这里提供两种可靠的解决方案:
正则表达式方案
使用带正向预查的正则,精准限定捕获范围,避免匹配到freq:
Today_(\w+)(?=_freq|$)
各部分说明:
Today_:匹配固定前缀(\w+):捕获下划线后的目标单词,后续的预查会阻止它匹配freq(?=_freq|$):正向预查,确保捕获的单词后面要么是_freq,要么是字符串结尾,完美适配两种格式的输入
代码示例(Python)
import re input_strings = ["Today_games", "Today_games_freq", "Today_things", "Today_things_freq"] pattern = r'Today_(\w+)(?=_freq|$)' extracted = [re.match(pattern, s).group(1) for s in input_strings] print(extracted) # 输出:['games', 'games', 'things', 'things']
字符串分割方案
如果输入格式固定(前缀都是Today_,后缀要么是目标单词,要么是目标单词_freq),直接用分割法更简洁:
input_strings = ["Today_games", "Today_games_freq", "Today_things", "Today_things_freq"] extracted = [s.split('_')[1] for s in input_strings] print(extracted) # 输出:['games', 'games', 'things', 'things']
内容的提问来源于stack exchange,提问作者LSM
相关产品推荐
相关产品推荐

