मेरा वर्तमान प्रयास (?<=[,(][^"]).*(?=[,)][^"])

("WideCharToMultiByte", "uint", 0, "uint", 0x400, "uint", Address, "int", Length, "str", String, "int", char_count, "uint", 0, "uint", 0)  

https://regex101.com/r/Vd3w7C/3/

मैं उद्धरणों के अंदर ( ) कम चीज़ों के अंदर की हर चीज़ का मिलान कैसे करूँ?

केवल मिलान करें: 0 address length string char_count 0 0

2
user14881255 20 मार्च 2021, 21:58
1
(?:\G(?!^),\s*|\()"[^"]*"(?:,\s*"[^"]*")*\K,\s*\K[^\s,)]+ (डेमो) जैसा कुछ?
 – 
Wiktor Stribiżew
20 मार्च 2021, 22:18
हाँ, वाह, ऐसा नहीं लगता कि यह इतना जटिल होने वाला था
 – 
user14881255
20 मार्च 2021, 22:22

1 उत्तर

सबसे बढ़िया उत्तर

PCRE/Onigmo संगत रेगेक्स इंजन का उपयोग करके, आप इसका उपयोग कर सकते हैं

(?:\G(?!^),\s*|\()(?:,?\s*"[^"]*")*,\s*\K[^\s,)]+

रेगेक्स डेमो देखें।

विवरण:

  • (?:\G(?!^),\s*|\() - या तो पिछले सफल मैच का अंत और फिर एक , और शून्य या अधिक रिक्त स्थान, या एक ( वर्ण
  • (?:,?\s*"[^"]*")* - शून्य या अधिक बारंबारता <उल>
  • ,? - एक वैकल्पिक अल्पविराम
  • \s* - शून्य या अधिक खाली स्थान
  • "[^"]*" - एक ", " के अलावा शून्य या अधिक वर्ण और फिर एक " वर्ण
  • , - एक अल्पविराम
  • \s* - शून्य या अधिक खाली स्थान
  • \K - मैच रीसेट ऑपरेटर समग्र मिलान मेमोरी बफर में अब तक मिलान किए गए टेक्स्ट को छोड़ देता है
  • [^\s,)]+ - व्हाइटस्पेस के अलावा एक या अधिक वर्ण, , और )
  • 0
    Wiktor Stribiżew 21 मार्च 2021, 00:11