我需要在特定的子字符串后提取一个由逗号分隔的数字序列。当子字符串在字符串的开头时,它工作正常,但当它在中间时就不行了。
正则表达式'Port':\ .([0-9]+)
可以很好地用于下面的示例,以获得值2
。
字符串示例:
{'Port': '2', 'Array': '[0, 0]', 'Field': '[2,2]', 'foo': '[0, 0]' , 'bar': '[9, 9]'}
但我需要获取字段值,我不在乎它是“[2,2]”还是2,2(字符串或数字)
我尝试了各种尝试与regex计算器,但无法找到一个解决方案返回的值后,字符串在中间的文本。任何想法?请帮助。谢谢前面,尼尔
3条答案
按热度按时间ntjbwcob1#
我发现正则表达式是这样的,不确定这是否是你想要的:
输出:
如果要作为字符串:
输出:
编辑:
如果我得到了你想要的,这可能会工作,它将创建一个新的 Dataframe 与值只有一列称为'字段',然后你可以把它附加到自己的 Dataframe 。
ia2d9nvy2#
这看起来像一个
print()
艾德的Python字典;你能用ast.literal_eval()
把它放回字典里吗?j13ufse23#
如果只需要
2,2
作为Field
值,则可以使用单个捕获组。请注意,您不必转义
'
:
,
和]
'Field':
逐字匹配\s+'\[
匹配1个以上的空白字符和[
(
捕获组1[0-9]+,\s*[0-9]+
匹配1+位数,
可选空格字符和1+位数)
关闭组1]'
逐字匹配请参阅regex demo和Python demo。
示例代码
输出量
如果要获取字段位于单引号之间的所有值,则仅当存在
[
时,才可以使用条件匹配]
Regex demo|Python demo
然后可以得到捕获组2的值。
示例:
输出量