(python语言)为什么正则表达式的 贪婪匹配模式 比 非贪婪模式 得到的匹配结果还要短? Python 正则表达式 非贪婪匹配问题

python \u6b63\u5219\u8868\u8fbe\u5f0f \u975e\u8d2a\u5a6a\u5339\u914d\u95ee\u9898

tim@tim-1215B:~$ python
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> data = 'Thu Feb 15 17:46:04 2007::[email protected]:: 2341123-6-8'
>>> patt = re.compile(r'.+(\d+-\d-\d)', re.X)
>>> print patt.match(data).group(1)
3-6-8
>>> patt = re.compile(r'.+?(\d+-\d-\d)', re.X)
>>> print patt.match(data).group(1)
2341123-6-8
>>>

\u7b2c\u4e8c\u6355\u83b7\u62ec\u53f7\u91cc\u9762\u662f (0*) \u2014\u20140\u4e2a\u6216\u591a\u4e2a0\uff0c \u540e\u9762\u63a5\u7740\u662f$\u2014\u2014\u884c\u5c3e,
02300\u2014\u2014\u4e0d\u6ee1\u8db3\u591a\u4e2a0.

\u6b63\u5219\u8868\u8fbe\u5f0f\u6539\u4e3a\uff1a
^(\d+?)(0.*)$
\u7ed3\u679c\u5c31\u4f1a\u662f\uff1a
("1", "02300")

不清楚你的贪婪模式的正则是怎么的:.*(a.*?a).*   or  .*?(a.*a).*  or  .*(a.*a).*

你给的例子匹配并没有问题

.*?  匹配的空

a.*?a 匹配的aqwertya

.* 匹配的aple

你可以试试给每段正则都加个分组然后打印每个分组的匹配结果,然后修改正则为贪婪和非贪婪分别看看结果。这样有助于你理解学习。

str='aqwertyaaple'
regex_str='(.*?)(a.*?a)(.*)'
match_obj=re.match(regex_str,str)
match_obj.group(1)
match_obj.group(2)
match_obj.group(3)


  • python 姝e垯琛ㄨ揪寮
    绛旓細鍖归厤涓ょ鎯呭喌鐨Python姝e垯琛ㄨ揪寮 top|123 鎴戠粰浣犱竴涓狿ython3璇█鐨勪緥瀛,浣犵湅鐪嬪惂.import re s ="topofhill1234567toptower123"regex = "top|123"print (re.findall(regex,s))
  • 姝e垯琛ㄨ揪寮忓尮閰?
    绛旓細渚嬪{3}琛ㄧず鍓嶉潰鐨勫厓绱犲繀椤诲嚭鐜3娆★紝{3,5}琛ㄧず鍓嶉潰鐨勫厓绱犲彲浠ュ嚭鐜3鍒5娆°6.杞箟瀛楃锛氱敤浜庡尮閰嶇壒娈婂瓧绗︽湰韬紝渚嬪"."鍙互鍖归厤鐐瑰彿鏈韩銆姝e垯琛ㄨ揪寮忕殑鍏蜂綋璇硶瑙勫垯杈冧负澶嶆潅锛屽彲浠ユ牴鎹叿浣撶殑鍖归厤闇姹傝繘琛屽涔犲拰浣跨敤銆傚湪缂栫▼璇█涓紝閫氬父鎻愪緵浜嗘鍒欒〃杈惧紡鐨勭浉鍏冲嚱鏁版垨鏂规硶锛屽彲浠ユ柟渚垮湴杩涜瀛楃涓插尮閰嶆搷浣溿
  • Python姝e垯琛ㄨ揪寮忎腑re.M 鏄浠涔鎰忔
    绛旓細Python姝e垯琛ㄨ揪寮忎腑re.M鐨勬剰鎬濇槸锛氬琛屽尮閰嶏紝褰卞搷 ^ 鍜 $銆傛鍒欒〃杈惧紡鍙互鍖呭惈涓浜涘彲閫夋爣蹇椾慨楗扮鏉ユ帶鍒跺尮閰嶇殑妯″紡銆備慨楗扮琚寚瀹氫负涓涓彲閫夌殑鏍囧織銆傚涓爣蹇楀彲浠ラ氳繃鎸変綅 OR(|) 瀹冧滑鏉ユ寚瀹氥傚 re.I | re.M 琚缃垚 I 鍜 M 鏍囧織锛歳e.I锛氫娇鍖归厤瀵瑰ぇ灏忓啓涓嶆晱鎰熴俽e.L锛氬仛鏈湴鍖栬瘑鍒紙...
  • python鏄浠涔堣瑷
    绛旓細Python鐗圭偣锛歅ython鏍囧噯搴撳緢搴炲ぇ銆傚畠鍙互甯姪澶勭悊鍚勭宸ヤ綔锛屽寘鎷姝e垯琛ㄨ揪寮忋佹枃妗g敓鎴愩佸崟鍏冩祴璇曘佺嚎绋嬨佹暟鎹簱銆佺綉椤垫祻瑙堝櫒銆丆GI銆丗TP銆佺數瀛愰偖浠躲乆ML銆乆ML-RPC銆丠TML銆乄AV鏂囦欢銆佸瘑鐮佺郴缁熴丟UI锛堝浘褰㈢敤鎴风晫闈級銆乀k鍜屽叾浠栦笌绯荤粺鏈夊叧鐨勬搷浣溿傝繖琚О浣Python鐨鈥滃姛鑳介綈鍏ㄢ濈悊蹇点傞櫎浜嗘爣鍑嗗簱浠ュ锛岃繕鏈夎澶氬叾浠栭珮...
  • 姝e垯鍖归厤 ABBA 鏍煎紡?
    绛旓細1.2.3.4.5.6.7.8.9.10.11.杩欐缁欏ぇ瀹朵富瑕佹槸浠嬬粛Python涓殑姝e垯琛ㄨ揪寮忥紝鍙婂叾鐩稿叧鍑芥暟鐨勫熀鏈娇鐢ㄦ柟娉曪紝骞朵笖鎹庡甫涓浜涙鍒欒〃杈惧紡缁欐垜浠甫鏉ョ殑渚垮埄銆/2 绠浠/ Python 鑷1.5鐗堟湰璧峰鍔犱簡re 妯″潡锛屽畠鎻愪緵 Perl椋庢牸鐨勬鍒欒〃杈惧紡妯″紡銆俽e 妯″潡浣垮緱Python 璇█鎷ユ湁鍏ㄩ儴鐨勬鍒欒〃杈惧紡鍔熻兘銆俢ompile 鍑芥暟鏍规嵁涓涓...
  • 姝e垯琛ㄨ揪寮忋亁path銆丅eautifulSoup鍜孞SONPath鐨勫尯鍒?
    绛旓細1.姝e垯琛ㄨ揪寮忔槸杩涜鍐呭鍖归厤锛屽皢绗﹀悎瑕佹眰鐨勫唴瀹瑰叏閮ㄨ幏鍙栵紱xpath()鑳藉皢瀛楃涓茶浆鍖栦负鏍囩锛屽畠浼氭娴嬪瓧绗︿覆鍐呭鏄惁涓烘爣绛撅紝浣嗘槸涓嶈兘妫 娴嬪嚭鍐呭鏄惁涓虹湡鐨勬爣绛撅紱Beautifulsoup鏄Python鐨涓涓涓夋柟搴擄紝瀹冪殑浣滅敤鍜 xpath 浣滅敤涓鏍凤紝閮芥槸鐢ㄦ潵瑙f瀽html鏁版嵁鐨勭浉姣斾箣涓嬶紝xpath鐨勯熷害浼氬揩涓鐐癸紝鍥犱负xpath搴曞眰鏄敤c...
  • python 姝e垯琛ㄨ揪寮忓浣曟埅鍙栧瓧绗︿覆涓棿鐨勫唴瀹
    绛旓細绀轰緥浠g爜鍚姩ipython鍏堝鍏e妯″潡 杩欓噷鎴戠敤鍒颁簡findall鍏ㄥ眬鍖归厤锛屽垎涓轰袱閮ㄥ垎锛屽墠闈㈡槸姝e垯锛屽悗闈㈡槸瑕佸尮閰嶇殑瀛楃涓 寰楀埌涓涓厓绁 閫氳繃鍙橀噺a 灏辫兘鎵撳嵃鍑烘兂瑕佺殑瀛楃涓
  • python璇█,鎬庝箞鐢姝e垯琛ㄨ揪寮忔彁鍙朒TML鏍囩
    绛旓細import retext = '''濮撳悕锛氬紶涓 2013/6/9'''htm = re.findall(r"<h3.*?>.*?", text)for t in htm: k = re.sub("<h3.*?>", "", t) k = re.sub("", "", k) print(k.replace("濮撳悕锛", ""))
  • python濡備綍澶勭悊鍗曡瀹炵幇涓夊厓琛ㄨ揪寮
    绛旓細瀵归偅浜涚啛鎮夌敤Python鎴朖avascript鏉ュ疄鐜姝e垯琛ㄨ揪寮忕殑浜烘潵璇达紝杩欐浠g爜寰堝钩甯搞傚湪Python鍜孞avascript杩欎簺璇█涓紝鎴栬呭叾浠栫殑璇█锛岃繖浜涙鍒欒〃杈惧紡涓鏃︽槑纭湴缂栬瘧杩囧悗锛屼綘鎯崇敤鍒板摢閲岄兘鍙互銆備笌Perl鐨勫崟姝ュ尮閰嶇浉姣旓紝鐪嬭捣鏉ュ澶氬仛浜嗕簺宸ヤ綔锛屼絾杩欏苟涓嶅緢璐逛簨銆俧ind()鏂规硶锛屽氨鍍忎綘鎵鎯宠薄鐨勶紝鐢ㄦ潵鎼滅储涓庢鍒欒〃杈惧紡鐩稿尮閰...
  • python璇█鏈浠涔鐗圭偣?
    绛旓細Python璇█鐗圭偣锛1銆佹槗浜庣紪绋 Pytho鏄竴绉嶉潪甯哥洿鎺ョ殑璇█锛屽畠鍏佽浣犺交鏉惧湴寮濮嬬紪绋嬶紝鍏跺熀纭鐭ヨ瘑鍙互鍦ㄦ暟灏忔椂鎴栨暟澶╁唴瀛︿細銆2銆佸紑婧 Python缂栫▼璇█鐨勭壒鐐逛箣涓灏辨槸寮婧愶紝涔熷氨鏄姣忎釜浜洪兘鍙互鏋勫缓鍜屼慨鏀瑰畠锛屾湁涓涓敱鎴愬崈涓婁竾鐨勭▼搴忓憳缁勬垚鐨勫湪绾跨ぞ鍖猴紝浠栦滑姣忓ぉ閮借仛闆嗗湪涓璧疯璁鸿璇█鐨勫彂灞曘備綘鍙互浠庝竴涓...
  • 扩展阅读:少儿编程一共有几级 ... 学历低学python有没有前途 ... 学python后到底能干什么 ... python实际上很难学 ... c++和python先学哪个 ... 自学python的十大坑 ... python期末考试题库及答案 ... 这三种人不适合学编程 ... 学python最佳年龄 ...

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