具有特定格式的子字符串提取

时间:2014-03-26 12:38:32

标签: python substring

我有一个字符串,其中包含具有下一格式的子字符串: 它以i_o_前缀开头,以,逗号结尾。

如何提取这样的字符串?

例如:

string = 'input  [89:0]     i_gth_rxdata,'

我需要i_gth_rxdata

3 个答案:

答案 0 :(得分:4)

my_string = 'input  [89:0]     i_gth_rxdata,'
import re
print re.findall(r'[io]_.*?(?=,)', my_string)
# ['i_gth_rxdata']

您可以看到RegEx如何运作,in this online demo

[io]_.*?(?=,)

Regular expression visualization

Debuggex Demo

答案 1 :(得分:0)

In [6]: import re

In [7]: text = 'input [89:0] i_gth_rxdata,'

In [9]: re.search(r'([io]_.*),', text).group(1)
Out[9]: 'i_gth_rxdata'

.*将贪婪地匹配,直到找到 last 逗号。如果您希望模式匹配,直到找到 first 逗号,请使用 r'([io]_.*?),'

这是一个显示差异的例子:

In [15]: re.search(r'([io]_.*),', 'input [89:0] i_gth_rxdata, 1,').group(1)
Out[15]: 'i_gth_rxdata, 1'

In [16]: re.search(r'([io]_.*?),', 'input [89:0] i_gth_rxdata, 1,').group(1)
Out[16]: 'i_gth_rxdata'

答案 2 :(得分:0)

>>> s = 'input [89:0] i_gth_rxdata,'
>>> import re
>>> obj = re.search(r'(i_|o_).*,', s)
>>> obj.group()
'i_gth_rxdata,'