簡體   English   中英

特定格式的子字符串提取

[英]substring extraction with specific format

我有一個包含與下一格式的子字符串:它開始與i_o_前綴和結尾,逗號。

如何提取這樣的字符串?

例如:

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

我需要i_gth_rxdata

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

您可以在此在線演示中查看RegEx的工作方式

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

正則表達式可視化

Debuggex演示

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'

.*將貪婪地匹配,直到找到最后一個逗號為止。 如果要在找到第一個逗號之前匹配該模式,請使用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'
>>> s = 'input [89:0] i_gth_rxdata,'
>>> import re
>>> obj = re.search(r'(i_|o_).*,', s)
>>> obj.group()
'i_gth_rxdata,'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM