我有以下字符串:
string1; 1.8w/v PEG_8000; string2; ;;
我想获得
; 1.8w/v PEG_8000;
部分。我尝试了以下方法:a =re.search(';[^.;]+PEG[^.;]+;','string1; 1.8w/v PEG_8000; string2; ;;'
返回
a = None
。我想念什么?
(OS X优胜美地,Python
2.7
)编辑:我之前说了以下,我发现这是不正确的。我忘了在尝试此操作之前先编辑了字符串。
有趣的是,如果我执行
grep -E --color ';[^.;]+PEG[^.;]+;' file
,其中file
包含字符串,则可以突出显示该字符串。编辑2:我有一个很大的文件,带有这样的字符串,关键字
PEG
不一定出现在第二个字段中。这就是为什么我不使用split(';')
的原因。 最佳答案
您需要从第一个字符类中删除点。因为在分号和子字符串PEG
之间存在一个点,导致正则表达式失败。请注意,字符类中的点仅与文字点匹配。
>>> re.search(r';[^;]+PEG[^.;]+;','string1; 1.8w/v PEG_8000; string2; ;;').group()
'; 1.8w/v PEG_8000;'