我有一些的URL重寫,我需要的是將在URLNginx的重寫捕獲逗號分隔字符串
像
/598ccb3055027300394ad711,598cf4f955027300386f3232?other=param
捕捉
598ccb3055027300394ad711,598cf4f955027300386f3232
怎麼樣把這個?我試過([a-zA-Z0-9,] +),但它只捕獲第一個字母數字字符串。
我有一些的URL重寫,我需要的是將在URLNginx的重寫捕獲逗號分隔字符串
像
/598ccb3055027300394ad711,598cf4f955027300386f3232?other=param
捕捉
598ccb3055027300394ad711,598cf4f955027300386f3232
怎麼樣把這個?我試過([a-zA-Z0-9,] +),但它只捕獲第一個字母數字字符串。
我想這給一個鏡頭:
/([^?]+)
蟒蛇例如:
import re
text = "/598ccb3055027300394ad711,598cf4f955027300386f3232?other=param"
match = re.search("/([^?]+)", text)
if match:
print (match.group(1))
應該輸出:
598ccb3055027300394ad711,598cf4f955027300386f3232
你想從捕獲/到第一非?,那就是你會得到的
試試這個正則表達式:
\/([a-zA-Z0-9]+,[a-zA-Z0-9]+).+
,然後捕獲的第一和唯一的組。該組排除了開始的正斜槓,並且在解析組之後到達非字母數字字符之後(並且只有確實捕獲了您感興趣的部分)。
不知道我在做什麼這裏錯了,但它似乎只捕獲第一個 – MikeL
Y我們的正則表達式確實匹配'** GRP 0 - (POS 1,LEN 49) 598ccb3055027300394ad711,598cf4f955027300386f3232 ** GRP 1 - (POS 1,LEN 49) 598ccb3055027300394ad711,598cf4f955027300386f3232'你需要它對於整個字符串匹配,以及? – sln
當我在nginx中嘗試這個正則表達式時,它只捕獲逗號前的第一個字母數字字符串 – MikeL
奇怪的是,''[a-zA-Z0-9,] +'中沒有任何內容會使它停在逗號,除非逗號','在一個類中有特殊含義,或者它根本不是逗號,但另一個Unicode看起來很相似。或者,網址中的逗號實際上不是逗號。試試'[a-zA-Z0-9,] +。[a-zA-Z0-9,] +'作爲測試。 – sln