python3用正则怎么删除指定字符串前面和后面的内容,只保留中间部分的内容,并存入列表? 正则表达式,匹配特定字符后面的内容

python \u6b63\u5219\u8868\u8fbe\u5f0f\u5982\u4f55\u622a\u53d6\u5b57\u7b26\u4e32\u4e2d\u95f4\u7684\u5185\u5bb9

\u793a\u4f8b\u4ee3\u7801\u542f\u52a8ipython\u5148\u5bfc\u5165re\u6a21\u5757

\u8fd9\u91cc\u6211\u7528\u5230\u4e86findall\u5168\u5c40\u5339\u914d\uff0c\u5206\u4e3a\u4e24\u90e8\u5206\uff0c\u524d\u9762\u662f\u6b63\u5219\uff0c\u540e\u9762\u662f\u8981\u5339\u914d\u7684\u5b57\u7b26\u4e32

\u5f97\u5230\u4e00\u4e2a\u5143\u7956

\u901a\u8fc7\u53d8\u91cfa \u5c31\u80fd\u6253\u5370\u51fa\u60f3\u8981\u7684\u5b57\u7b26\u4e32
\u6269\u5c55\u8d44\u6599\u5728 Python \u4e2d\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u7684 re \u6a21\u5757\u6765\u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\uff0cre \u6a21\u5757\u63d0\u4f9b\u4e86\u4e0d\u5c11\u6709\u7528\u7684\u51fd\u6570\uff0c\u7528\u4ee5\u5339\u914d\u5b57\u7b26\u4e32\uff0c\u6bd4\u5982\uff1a

re \u6a21\u5757\u7684\u4e00\u822c\u4f7f\u7528\u6b65\u9aa4\u5982\u4e0b\uff1a
\u4f7f\u7528 compile \u51fd\u6570\u5c06\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5b57\u7b26\u4e32\u5f62\u5f0f\u7f16\u8bd1\u4e3a\u4e00\u4e2a Pattern \u5bf9\u8c61
\u901a\u8fc7 Pattern \u5bf9\u8c61\u63d0\u4f9b\u7684\u4e00\u7cfb\u5217\u65b9\u6cd5\u5bf9\u6587\u672c\u8fdb\u884c\u5339\u914d\u67e5\u627e\uff0c\u83b7\u5f97\u5339\u914d\u7ed3\u679c\uff08\u4e00\u4e2a Match \u5bf9\u8c61\uff09
\u6700\u540e\u4f7f\u7528 Match \u5bf9\u8c61\u63d0\u4f9b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\u83b7\u5f97\u4fe1\u606f\uff0c\u6839\u636e\u9700\u8981\u8fdb\u884c\u5176\u4ed6\u7684\u64cd\u4f5c

findall \u65b9\u6cd5\u7684\u4f7f\u7528\u5f62\u5f0f\u5982\u4e0b\uff1a
findall(string[, pos[, endpos]])
\u5176\u4e2d\uff0cstring \u662f\u5f85\u5339\u914d\u7684\u5b57\u7b26\u4e32\uff0cpos \u548c endpos \u662f\u53ef\u9009\u53c2\u6570\uff0c\u6307\u5b9a\u5b57\u7b26\u4e32\u7684\u8d77\u59cb\u548c\u7ec8\u70b9\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u503c\u5206\u522b\u662f 0 \u548c len (\u5b57\u7b26\u4e32\u957f\u5ea6)\u3002
findall \u4ee5\u5217\u8868\u5f62\u5f0f\u8fd4\u56de\u5168\u90e8\u80fd\u5339\u914d\u7684\u5b50\u4e32\uff0c\u5982\u679c\u6ca1\u6709\u5339\u914d\uff0c\u5219\u8fd4\u56de\u4e00\u4e2a\u7a7a\u5217\u8868\u3002

\u5982\u679c\u524d\u9762\u662f\u56fa\u5b9a\u7684\u201c\u59d3\u540d\uff1a\u201d\u7684\u8bdd\uff0c\u8bd5\u8bd5(?<=\u59d3\u540d\uff1a).*?(?=\uff0c\d{11})\u3002
\u6b63\u5219\u8868\u8fbe\u5f0f\uff0c\u53c8\u79f0\u89c4\u5219\u8868\u8fbe\u5f0f\u3002\uff08\u82f1\u8bed\uff1aRegular Expression\uff0c\u5728\u4ee3\u7801\u4e2d\u5e38\u7b80\u5199\u4e3aregex\u3001regexp\u6216RE\uff09\uff0c\u8ba1\u7b97\u673a\u79d1\u5b66\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u6b63\u5219\u8868\u8fbe\u5f0f\u901a\u5e38\u88ab\u7528\u6765\u68c0\u7d22\u3001\u66ff\u6362\u90a3\u4e9b\u7b26\u5408\u67d0\u4e2a\u6a21\u5f0f(\u89c4\u5219)\u7684\u6587\u672c\u3002

\u6269\u5c55\u8d44\u6599\uff1a
\u6b63\u5219\u8868\u8fbe\u5f0f\u7531\u4e00\u4e9b\u666e\u901a\u5b57\u7b26\u548c\u4e00\u4e9b\u5143\u5b57\u7b26\uff08metacharacters\uff09\u7ec4\u6210\u3002\u666e\u901a\u5b57\u7b26\u5305\u62ec\u5927\u5c0f\u5199\u7684\u5b57\u6bcd\u548c\u6570\u5b57\uff0c\u800c\u5143\u5b57\u7b26\u5219\u5177\u6709\u7279\u6b8a\u7684\u542b\u4e49\uff0c\u6211\u4eec\u4e0b\u9762\u4f1a\u7ed9\u4e88\u89e3\u91ca\u3002
\u5728\u6700\u7b80\u5355\u7684\u60c5\u51b5\u4e0b\uff0c\u4e00\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u770b\u4e0a\u53bb\u5c31\u662f\u4e00\u4e2a\u666e\u901a\u7684\u67e5\u627e\u4e32\u3002\u4f8b\u5982\uff0c\u6b63\u5219\u8868\u8fbe\u5f0f"testing"\u4e2d\u6ca1\u6709\u5305\u542b\u4efb\u4f55\u5143\u5b57\u7b26\uff0c\u5b83\u53ef\u4ee5\u5339\u914d"testing"\u548c"testing123"\u7b49\u5b57\u7b26\u4e32\uff0c\u4f46\u662f\u4e0d\u80fd\u5339\u914d"Testing"\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-\u6b63\u5219\u8868\u8fbe\u5f0f

这个图片清楚了,我大概猜一下就是就是要把字符串的列表变成真正的列表?

首先把false变成False(因为python中False要求F大写)

然后用eval就行了

string = re.sub('false','False',string)

li = eval(re.search(r'\[\[[\s\S]+\]\]',string).group())




筛选两遍,第一遍以非贪婪模式找出所有匹配有...中的字符串,第二遍剔除其中含有非法字符的匹配结果。

test_str = '有干燥剂中有干燥中有发明了XX技术中有发明了XX中'
regex1 = r'有(.+?)中' #匹配所有'有...中'之间的字符
pre_match = re.findall(regex1, test_str) #结果:['干燥剂','干燥','发明了XX技术','发明了XX']
regex2 = r'(?!.*干燥剂)(?!.*发明了.+技术)' #不能含有干燥剂和发明了..技术字样
final_match = [s for s in pre_match if re.match(regex2, s)] #结果:['干燥','发明了XX']






  • python3鐢ㄦ鍒欐庝箞鍒犻櫎鎸囧畾瀛楃涓插墠闈㈠拰鍚庨潰鐨勫唴瀹,鍙繚鐣欎腑闂撮儴鍒嗙殑鍐...
    绛旓細棣栧厛鎶奻alse鍙樻垚False锛堝洜涓python涓璅alse瑕佹眰F澶у啓锛夌劧鍚庣敤eval灏辫浜 string = re.sub('false','False',string)li = eval(re.search(r'\[\[[\s\S]+\]\]',string).group())
  • python涓濡備綍浣跨敤姝e垯琛ㄨ揪寮忎粠瀛楃涓蹭腑鍒犻櫎鐗瑰畾瀛楃?
    绛旓細鍙互浣跨敤 one_str.replace("EventApplyCheckIn:\/\/", "") 鎶婂畠鏇挎崲涓虹┖灏卞ソ
  • python涓鍒╃敤姝e垯琛ㄨ揪寮忕殑鍒犻櫎鐗瑰畾瀛楃鐨勯棶棰
    绛旓細"aaaa && || bbbb"涓殑"&& ||""bbbb || "涓殑"||"鎬讳箣灏辨槸鎶婂墠鎴栧悗娌℃湁琛ㄨ揪寮忕殑&&鎴東|缁鍒犳帀鑰屼笖鍙妸&&鎴東|鏈韩鍒犻櫎,涓嶈兘褰卞搷aaaa鎴朾bbb娉ㄦ剰鏈濂藉厛鎶婄鍚堟潯浠剁殑&&鍒犳帀,鐒跺悗鍐嶆妸绗﹀悎鏉′欢鐨剕|鍒犳帀,濡傛灉鍒犳帀&&鍚,||涓嶇鍚堟潯浠朵簡(鍓嶅悗閮芥湁琛ㄨ揪寮忎簡,灏辨瘮濡備笂闈㈢2涓緥瀛)閭e氨涓嶇敤鍒犳垜鐜板湪閬囧埌鐨勯棶棰樻槸...
  • 鍒犻櫎瀛楃涓插墠闈鐨鏁板瓧
    绛旓細鍦≒ython涓紝濡傛灉浣犳兂瑕佸垹闄ゅ瓧绗︿覆鍓嶉潰鐨勬墍鏈夋暟瀛楋紝鍙互浣跨敤`re`搴擄紙姝e垯琛ㄨ揪寮忥級鏉ヨ揪鎴愯繖涓鐩殑銆備互涓嬫槸涓涓畝鍗曠殑绀轰緥浠g爜锛屽畠瀹氫箟浜嗕竴涓嚱鏁帮紝璇ュ嚱鏁版帴鍙椾竴涓瓧绗︿覆浣滀负杈撳叆锛屽苟浣跨敤姝e垯琛ㄨ揪寮忔潵鏌ユ壘骞跺垹闄ゅ瓧绗︿覆寮澶寸殑鎵鏈夋暟瀛椼俙``python import re def remove_leading_digits(s):浣跨敤姝e垯琛ㄨ揪寮忓尮閰...
  • 濡備綍鐢╬ython姝e垯琛ㄨ揪寮忓幓闄r鍜孿n瀛楃?
    绛旓細import rea = 'abcdeef\r\n'b = re.sub('\r\n','',a) #鐩存帴鐢ㄧ┖瀛楃涓叉浛浠## b 涓'abcdeef'
  • python姝e垯琛ㄨ揪寮忓幓闄ゆ墍鏈夋爣鐐
    绛旓細浣犲簲璇ュ厛瀹氫箟鍙橀噺 punctuation锛屽叾鍐呭搴旇鏄墍鏈夌殑鏍囩偣绗﹀彿锛屾瘮濡備笅闈㈢殑浠g爜 锛堟垜娌℃湁鍒楀嚭鎵鏈夌殑鏍囩偣锛塱mport repunctuation = '!,;:?"\''def removePunctuation(text): text = re.sub(r'[{}]+'.format(punctuation),'',text) return text.strip().lower()text = " Hello, world! "...
  • python濡備綍鐢ㄦ鍒琛ㄨ揪寮忚繃婊ゆ暟瀛?
    绛旓細姝e垯琛ㄨ揪寮:^\d+(\.\d+)?浣犲彲浠ョ敤杩欎釜姝e垯琛ㄨ揪寮忓尮閰嶈緭鍏ョ殑瀛楃,濡傛灉涓嶅尮閰嶈鏄庢槸闈炴硶鐨勫瓧姣嶅拰瀛楃.
  • python姹傚姪瀛楃涓鍒犻櫎鎸囧畾瀛愪覆
    绛旓細鏈涢噰绾硚import re#re鏄姝e垯琛ㄨ揪寮忔ā鍧 a = '鍖(b臎i)浜(j墨ng)鏄(sh矛)涓(zh艒ng)鍥(gu贸)鐨(de)棣(sh菕u)閮(d奴)'a = re.sub('\(.+?\)', '', a)print(a)
  • python姝e垯琛ㄨ揪寮忔彁鍙栨煇娈典俊鎭悗,濡備綍鍘绘帀杩欎簺淇℃伅涓惈鏈夌殑鏌愪簺淇℃伅_鐧 ...
    绛旓細杩欎釜鍘嬫牴鐢ㄤ笉涓姝e垯琛ㄨ揪寮忋傛瘮濡備綘瑕佹彁鍙栤滄湁...涓濅腑闂寸殑淇℃伅锛岀洿鎺ョ敤瀛楃涓叉埅鍙栦笉灏辫浜嗭紝鍥犱负浣犵殑鏄病鏈夎鍒欑殑瀛楃涓层傚亣濡傝繖涓棿淇℃伅鍚湁 骞茬嚗鍓 鎴栬 鍙戞槑浜嗐傘傛妧鏈 ---杩欎釜鍙互閫氳繃鏌ユ壘瀛楃涓诧紝鍘诲仛鍒ゆ柇锛屽垽鏂箣鍚庡啀鍐冲畾鏄惁瑕佹彁鍙栬繖鏁存潯淇℃伅銆
  • python涓鐢ㄦ鍒琛ㄨ揪寮鍘绘帀鏂囨湰涓墍鏈夌殑鏍囩偣绗﹀彿
    绛旓細鎴戠殑鐞嗚В鏄 python鈥檚鐨勨 鈥 鈥濅篃鏄瓧绗 锛屽拰鏍囩偣绗﹀彿涓鏍枫備綘鍙鎶婂幓闄ょ殑瀛楃閮藉姞鍒姝e垯琛ㄨ揪寮忕殑鎷彿涓氨鍙互浜嗐 锛屾墍浠ワ細import re r='[鈥!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+'line=re.sub(r,'',"python鈥檚")print line ...
  • 扩展阅读:python求1+2+3+n的和 ... 电脑python卸载不掉 ... 如何把python彻底删除 ... python正则表达式菜鸟教程 ... python3.9卸载不干净 ... 为什么卸载python卸不掉 ... python基础代码大全 ... python交互界面怎么清空 ... 为什么卸载python时出错 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网