我試圖從格式{{field: value} {field2: value} ... {fieldn: valuen}}
模式匹配的重複模式
我被困在{(.*): (.*)}
的字符串中提取羣體 - 在RegexTester,它的整個字符串(可以理解)匹配,但在執行時,拋出一個異常 - 「非法重複」
我試圖從格式{{field: value} {field2: value} ... {fieldn: valuen}}
模式匹配的重複模式
我被困在{(.*): (.*)}
的字符串中提取羣體 - 在RegexTester,它的整個字符串(可以理解)匹配,但在執行時,拋出一個異常 - 「非法重複」
首先,{
和}
應該被轉義,因爲它們意味着次重複
其次,我想你想匹配你的字符串只有部分。你可能只允許允許的字符(如[A-Z0-9]),以便進入字符串將不匹配
\\{([a-z0-9]*): ([a-z0-9]*)\\}
正如在評論中指出,你可以允許除了一些特殊[^{}:]
所有字符。如果我沒有記錯的話,你不需要在字符類別中跳過{}
。
逃生一些字符:
"\\{(.*): (.*)\\}"
字符}和{有特殊的意義,需要進行轉義。
謝謝。你是什麼意思:「你可能只允許允許的字符(例如a-z),以便輸入字符串不匹配?」爲什麼沒有。*工作? –
你的正則表達式會匹配任何包含'{',然後是任何東西,然後是「:」,然後是任何東西,而不是}的任何字符串,對於你的例子它只會匹配所有的字符串。 Mine將分別匹配每個字段[示例](http://regexpal.com/?flags=g®ex=%5C%7B(%5Ba-z0-9%5D *)%3A%20(%5Ba-z0-9% 5D *)%5C%7D&input =%7B%7Bfield%3A%20value%7D%20%7Bfield2%3A%20value%7D%20 ...%20%7Bfieldn%3A%20valuen%7D%7D) – RiaD
肯定不想要的字符串不匹配,並仍然適合特殊的正則表達式字符,如「\\ {([^ \\ {\\}:] *):([^ \\ {\\}:] *)\\} 」。這部分[^ \ {\}:]僅匹配不是{,}或:的字符。 –