gpt4 book ai didi

python - 适本地分割字符串(使用reg.exp.)以提取Python中的一些信息

转载 作者:行者123 更新时间:2023-12-01 03:49:37 24 4
gpt4 key购买 nike

我有一个这样的字符串

s = "CITY_NAME == 'Pune' & GENRE in ['$SPORTS$','$CLASSICAL$']$#$CITY_NAME == 'Pune' & GENRE == 'ROMANCE' & QUANTITY >= 25$#$CITY_NAME == 'Pune' & GENRE in ['$ACTION$','$DRAMA$'] & LANGUAGE == 'Hindi'$#$CITY_NAME == 'Pune' & GENRE in ['$MUSICAL$','$Music$'] & EVENT_NAME == 'Dhoom-3'"

实际上这个字符串是由'$#$'连接几个条件组成的。因此“CITY_NAME == 'Pune' & GENRE in ['$SPORTS$','$CLASSICAL$']”是条件等等..

现在我的要求是过滤掉该字符串中存在的字段(组合)。我的o/p应该产生

fields = ['CITY_NAME ', 'GENRE', 'QUANTITY ', 'LANGUAGE', 'EVENT_NAME ']     ###Only the field name list

我尝试过这样做

s1 = s.split('$#$')  
### if i have to go for any one condition, then split by '$#$' gives one list of all condition and i will take 0th index condition
#### then i will split them(the individual condition) at '&'
#### then from that list i will split at '==' or '>=' or 'in' and take 0th index item then i can find one field name
q = s1[0] ###"CITY_NAME == 'Pune' & GENRE in ['$SPORTS$','$CLASSICAL$']"
qq = q.split('&') ###["CITY_NAME == 'Pune' ", " GENRE in ['$SPORTS$','$CLASSICAL$']"]
qqq = qq[0] ###"CITY_NAME == 'Pune' "
qqq.split('==')[0] ###CITY_NAME

我尝试过考虑任何一种条件来进行拆分。但无法将所有内容放入列表理解语句中。

此外,我相信还有其他简单的方法,例如使用 reg 表达式。(但我对 reg 表达式非常不熟悉。)

需要一些代码帮助...谢谢..

最佳答案

import re
s = ...
fields = set()
for word in s.split():
if re.match(r'^[A-Z_]*$', word):
fields.add(word)
fields = list(fields)
print fields

这会产生:['CITY_NAME', 'GENRE', 'EVENT_NAME', 'LANGUAGE', 'QUANTITY']

它将您的字段分开的原因是它们是唯一全大写且不包含 _ 以外的特殊字符的单词。

关于python - 适本地分割字符串(使用reg.exp.)以提取Python中的一些信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38466131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com