Python 匹配逗号分隔的列表
我有这样一个示例字符串:Python 匹配逗号分隔的列表,python,regex,Python,Regex,我有这样一个示例字符串: [{HST, AKST, PST, MST, CST, EST, AST, WAT, CET, GMT, EET, CCT, AWST, JST, EAST, NZT} {0:10}] 我对括号中的第一组项目感兴趣: {HST, AKST, PST, MST, CST, EST, AST, WAT, CET, GMT, EET, CCT, AWST, JST, EAST, NZT} 我想解析集合并将其放入列表中。我正在使用python for match in re
[{HST, AKST, PST, MST, CST, EST, AST, WAT, CET, GMT, EET, CCT, AWST, JST, EAST, NZT} {0:10}]
我对括号中的第一组项目感兴趣:
{HST, AKST, PST, MST, CST, EST, AST, WAT, CET, GMT, EET, CCT, AWST, JST, EAST, NZT}
我想解析集合并将其放入列表中。我正在使用python
for match in re.finditer("(?i)[a-z]+", subject):
# match start: match.start()
# match end (exclusive): match.end()
# matched text: match.group()
这将帮助您遍历列表中的“元素”
编辑:你现在写它是更大字符串的一部分。这改变了原来的问题
for match in re.finditer(r"(?i)(?:(\b[a-z]+\b)[,}])", subject):
# match start: match.start()
# match end (exclusive): match.end()
# matched text: match.group(1)
这将找到您的列表并提取其中的单词。正则表达式只会创建标记,之后您需要处理它们。幸运的是,python的标准正则表达式库包含一个函数,可以为您提供它找到的所有值
import re
input = '{HST, AKST, PST, MST, CST, EST, AST, WAT, CET, GMT, EET, CCT, AWST, JST, EAST, NZT}'
data = re.findall(r'\w+', input)
此外,这将找到所有“单词”。根据有效输入的内容,您可能需要更强大的正则表达式。在这方面,其他详细信息可能会有所帮助。要拆分字符串,可以使用
string.split(s,,)
。这将返回一个基于字符“,”拆分的字符串列表
要从一个较大的字符串中得到这个列表,请先拆分“{”和“}”字符。我有点困惑。您想要一个单独匹配此列表中所有元素的正则表达式吗?还是要将列表拆分为数组或其他更易于处理的内容?后者。拆分不起作用,因为它是较大字符串的一部分。是否要确定在逗号分隔列表中是否找到给定变量的值?您的逗号分隔列表存储在什么位置?你提到它是一个更大的字符串的一部分。请给我们更多信息。如果它是较大字符串的一部分,您可以使用
substring()
仅获取逗号分隔的列表。或者你可以先把它分成“{”和“}”两个字符。我做了更多的编辑。这些信息够了吗?对不起,我之前不清楚。