Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用“re”从字符串中提取列表_Python_Regex_Parsing - Fatal编程技术网

Python 使用“re”从字符串中提取列表

Python 使用“re”从字符串中提取列表,python,regex,parsing,Python,Regex,Parsing,我有一个这样格式的字符串:any_string=[u'02',u'03',u'04',u'05']。 我想从中提取一个列表,它看起来应该像new_list=['02','03','04','05'] 我用的是“re”。下面的代码我写的是为了完成这项工作,但没有运气 import re new_list = re.findall(r'["w "]', any_string) 我得到的结果是['',''] 基本上,我想要一个像这个新的列表=['02','03','04','05'],这样我就可以

我有一个这样格式的字符串:any_string=[u'02',u'03',u'04',u'05']。 我想从中提取一个列表,它看起来应该像new_list=['02','03','04','05']

我用的是“re”。下面的代码我写的是为了完成这项工作,但没有运气

import re

new_list = re.findall(r'["w "]', any_string)
我得到的结果是['','']


基本上,我想要一个像这个新的列表=['02','03','04','05'],这样我就可以循环遍历像02,03,04,05这样的单个项目。我想知道这个字符串是从哪里来的。它看起来像是通过str或repr传递的列表。如果您需要将列表序列化为字符串,请使用JSON或。

我想问您从何处获取此字符串。它看起来像是通过str或repr传递的列表。如果您需要将列表序列化为字符串,请使用JSON或。

如果您没有绑定到re,那么ast呢?还有一封信:

In [1]: import ast

In [2]: any_string = "[u'02', u'03', u'04', u'05']"

In [3]: my_list = ast.literal_eval(any_string)

In [4]: type(my_list)
Out[4]: <type 'list'>

In [5]: my_list
Out[5]: [u'02', u'03', u'04', u'05']

In [6]: for item in my_list:
   ...:     print item
   ...:
   ...:
02
03
04
05
如果你没有被re束缚,那么ast呢?还有一封信:

In [1]: import ast

In [2]: any_string = "[u'02', u'03', u'04', u'05']"

In [3]: my_list = ast.literal_eval(any_string)

In [4]: type(my_list)
Out[4]: <type 'list'>

In [5]: my_list
Out[5]: [u'02', u'03', u'04', u'05']

In [6]: for item in my_list:
   ...:     print item
   ...:
   ...:
02
03
04
05

Ha,+1表示还建议使用非re选项::我只在必要时使用re。这不是JSON字符串,这是以unicode字符串作为元素的Python列表文字。使用RocketDonkey的解决方案确实要好得多。然而,没有人反对尝试。你是对的,尽管我仍然认为他们应该首先集中精力消除解析这个字符串的需要。@NathanVillaescusa:显然他必须这样做,但如果他能够控制生成字符串的代码,那么你在移向不同格式的部分是正确的。JSON更受欢迎,并被确定为数据交换格式。Ha,+1表示还建议使用非re选项::我仅在必要时使用re。这不是JSON字符串,而是以unicode字符串作为元素的Python列表文字。使用RocketDonkey的解决方案确实要好得多。然而,没有人反对尝试。你是对的,尽管我仍然认为他们应该首先集中精力消除解析这个字符串的需要。@NathanVillaescusa:显然他必须这样做,但如果他能够控制生成字符串的代码,那么你在移向不同格式的部分是正确的。JSON更受欢迎,并被确立为数据交换格式。基本上,我想要一个像这个新的列表=['02','03','04','05'],这样我就可以循环遍历像02,03,04,05@sandeep因此,ast.literal_eval将实际返回字符串的文本求值,在本例中是一个列表。我会顺便举一个例子,希望能有所帮助。非常感谢RocketDonkey,它对我很有用。但是我们能用“re”来做吗?sandeep真棒,很高兴听到。至于re解决方案,dbr实际上在您的原始帖子的评论中发布了它。如果你需要使用re,那么这个表达式就是最好的方法。基本上我想要一个像这个新的列表=['02','03','04','05',],这样我就可以循环遍历像02,03,04,05@sandeep因此,ast.literal_eval将实际返回字符串的文本求值,在本例中是一个列表。我会顺便举一个例子,希望能有所帮助。非常感谢RocketDonkey,它对我很有用。但是我们能用“re”来做吗?sandeep真棒,很高兴听到。至于re解决方案,dbr实际上在您的原始帖子的评论中发布了它。如果您需要使用re,该表达式就是正确的方法。re.findallr'\w+',任何_字符串都可以使用,但是ast.literal_eval解决方案是最好的解决方案,除了以更合适的格式获取数据(如json/YAMLE.findallr'\w+),任何_字符串都可以使用,但是ast.literal_eval解决方案是最好的解决方案,它不需要以更合适的格式(如json/yaml)获取数据