正则表达式找以a开始以b或c或字符串结束的所有中间的字符串

例如:我要找出以as:开始,以as:或者ad:或者字符串结尾的所有中间字符串
b = 'as:\xe8\x80\x81\xe5\x85\xac\xe6\x98\xaf\xe4\xb8\xaa\xe7\xa0\x81\xe5\xad\x97\xe7\x8b\x82TXT\xe5\x85\xa8\xe9\x9b\x86\xe4\xb8\x8b\xe8\xbd\xbdas:\xe7\x99\xbe\xe5\xba\xa6\xe4\xba\x91\xe7\xbd\x91\xe7\x9b\x98\xe7\x9b\x98\xe6\x90\x9c\xe6\x90\x9cad:\xe8\x80\x81\xe5\x85\xac\xe6\x98\xaf\xe4\xb8\xaa\xe7\xa0\x81\xe5\xad\x97\xe7\x8b\x82\xe6\x9f\xbf\xe5\xad\x90\xe6\x9e\x9c_\xe5\x8e\x9f\xe5\x88\x9b\xe5\xb0\x8f\xe8\xaf\xb4|\xe8\xa8\x80'
希望得到['\xe8\x80\x81\xe5\x85\xac\xe6\x98\xaf\xe4\xb8\xaa\xe7\xa0\x81\xe5\xad\x97\xe7\x8b\x82TXT\xe5\x85\xa8\xe9\x9b\x86\xe4\xb8\x8b\xe8\xbd\xbd', '\xe7\x99\xbe\xe5\xba\xa6\xe4\xba\x91\xe7\xbd\x91\xe7\x9b\x98\xe7\x9b\x98\xe6\x90\x9c\xe6\x90\x9c',
\xe8\x80\x81\xe5\x85\xac\xe6\x98\xaf\xe4\xb8\xaa\xe7\xa0\x81\xe5\xad\x97\xe7\x8b\x82\xe6\x9f\xbf\xe5\xad\x90\xe6\x9e\x9c_\xe5\x8e\x9f\xe5\x88\x9b\xe5\xb0\x8f\xe8\xaf\xb4|\xe8\xa8\x80]
我现在用的正则表达式是re.findall(r'as:(.+?)[as:|ad:]',b)
得到的只能匹配第一个:['\xe8\x80\x81\xe5\x85\xac\xe6\x98\xaf\xe4\xb8\xaa\xe7\xa0\x81\xe5\xad\x97\xe7\x8b\x82TXT\xe5\x85\xa8\xe9\x9b\x86\xe4\xb8\x8b\xe8\xbd\xbd']
求解答~~

^[(BEGIN:VCARD)|(BEGIN:MECARD)].*[(END:VCARD)|(END:MECARD)]$

正则表达式”选中以某些字符开始,某些字符结尾的字符串?的含义如下:

字符 含意:\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b" ,当b 前面加了反斜杆后/\b/,转意为匹配一个单词的边界。-或-对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa ,加了"\"后,/a\*/将只匹配"a*"。

扩展资料:

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

参考资料来源:百度百科-正则表达式

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-24
表达式:^;.*

作用是匹配“;”开头的整行,其中:
^是匹配开头,
;是匹配;
.匹配任意字符(多行模式中除回车换行),.*表示任意字符出现任意多次

如果需要半角的话,把表达式中的“;”换成“;”即可本回答被网友采纳
相似回答