[問題] Python match問題 missing )

看板RegExp (正規表示式 Regular Expression)作者 (【積π】)時間4年前 (2020/02/20 11:31), 編輯推噓5(506)
留言11則, 3人參與, 4年前最新討論串1/1
Python 3.7 =====程式碼===== import re pattern = re.compile(r"goDetail('") match = pattern.match("goDetail('2069','17-104-214-3(21112)')") print(match) ================ 執行一直報錯 error: missing ), unterminated subpattern at position 8 小弟想要取出上述綠色的值 想到的方法是用start、end來做處理 但一直發生missing )的問題 想請問各位前輩要怎麼解 或 是否有更好的處理方式 先感謝各位大大了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.242.44.65 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1582169496.A.D8C.html

02/20 13:21, 4年前 , 1F
re.compile() 裡面置換成…
02/20 13:21, 1F

02/20 13:21, 4年前 , 2F
goDetail\('([^']+)','([^']+)'\)
02/20 13:21, 2F

02/20 13:21, 4年前 , 3F
看看…
02/20 13:21, 3F

02/20 13:23, 4年前 , 4F
然後再print(match.group(1))跟print(match.group(2))看看
02/20 13:23, 4F

02/20 14:16, 4年前 , 5F
大哥,你太神了,請受小弟一拜
02/20 14:16, 5F

02/20 14:16, 4年前 , 6F
可以說明一下邏輯嗎 拜託惹
02/20 14:16, 6F

02/21 01:07, 4年前 , 7F
() 在 re 裡的意思是框起來抓成 group, 所以有 ( 就要有 )
02/21 01:07, 7F

02/21 01:08, 4年前 , 8F
如果你要表示「( 這個字」則要在前面加一個 \ 表示, ) 亦同
02/21 01:08, 8F

02/21 01:10, 4年前 , 9F
這回答中, 框起來的 () 和普通的 \(\) 都有, 可自行推敲
02/21 01:10, 9F

02/21 12:39, 4年前 , 10F
對,重點就是()跟\(\)的不同、以及match group用法
02/21 12:39, 10F

02/21 12:46, 4年前 , 11F
感謝樓上幫忙解釋,且講的很仔細 ^^b
02/21 12:46, 11F
文章代碼(AID): #1UJVsOsC (RegExp)
文章代碼(AID): #1UJVsOsC (RegExp)