python正则表达式findi

2024-09-30 05:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有关于re的问题,我试着在re纪录片上寻找答案,但我想我是新手。你知道吗

我有这样的绳子

string = "id=186 s_id=0  channel_name=[cspacer0]---BlaBla--- number=2"

我想检索“=”之后的所有结果,所以我使用

re.finditer("=[\w]*", string)

我的结果如下

  • 186个
  • 0个
  • 空空间<;--应该有一个[cspacer0]--BlaBla--

我的模式应该如何获得频道名称?你知道吗


Tags: 答案nameltreidnumberstringchannel
1条回答
网友
1楼 · 发布于 2024-09-30 05:26:56

\w标记只匹配单词字符,为了允许元字符,我将使用\S(任何非空格字符)。此外,您可以使用findall代替finditer执行此任务:

>>> import re
>>> s = 'id=186 s_id=0  channel_name=[cspacer0] -BlaBla - number=2'
>>> re.findall(r'=(\S+)', s)
['186', '0', '[cspacer0] -BlaBla -', '2']

编辑

The orginal string looks like this, I want to get everything starting with = skip =ok and idx=0

>>> s = 'error idx=0 msg=ok id=186 s_id=0 channel_name=[cspacer0] -BlaBla - number=2'
>>> re.findall(r'(?<!idx)=(?!ok)(\S+)', s)
['186', '0', '[cspacer0] -BlaBla -', '2']

相关问题 更多 >

    热门问题