मैं निम्नलिखित पैटर्न से मेल खाने के लिए सही रेगेक्स खोजने की कोशिश कर रहा हूं:

any_characters--any_characters

लेकिन यह नहीं:

any_characters---any_characters

अंतर यह है कि अवांछित पैटर्न में ठीक तीन बाद के डैश होते हैं और वांछित पैटर्न में ठीक दो होते हैं।

मैंने (.*)--(.*) की कोशिश की है, लेकिन निश्चित रूप से यह काम नहीं करता है क्योंकि एक डैश .* से मेल खाता है, इसलिए उपरोक्त रेगेक्स किसी भी चीज़ से मेल खाएगा जब तक कि इसमें दो या अधिक डैश हों।

0
yevg 1 नवम्बर 2019, 22:02
1
आप कितने वर्ण प्राप्त करना चाहते हैं? सीमा कौन सा चिन्ह है? एक स्थान?
 – 
Xenobiologist
1 नवम्बर 2019, 22:05
परीक्षण स्ट्रिंग्स में कोई रिक्त स्थान नहीं होगा लेकिन सामान्य तौर पर, रिक्त स्थान सीमा होगी। मैं पूरी स्ट्रिंग से मिलान करना चाहता हूं यदि इसमें -- है और कोई भी स्ट्रिंग नहीं है यदि इसमें --- है
 – 
yevg
1 नवम्बर 2019, 22:07
1
कुछ इस तरह? '.*[^-]--[^-].*'
 – 
Xenobiologist
1 नवम्बर 2019, 22:09
भगवान आपका भला करे और भगवान आपका भला करे
 – 
yevg
1 नवम्बर 2019, 22:10

2 जवाब

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

जैसा कि पहले ही एक टिप्पणी में लिखा गया है, यह चाल चलनी चाहिए।

 '.*[^-]--[^-].*'
2
Xenobiologist 1 नवम्बर 2019, 22:12
यह ------------X--Y---------------- डेमो से मेल खा रहा है
 – 
Toto
1 नवम्बर 2019, 22:45
यह x---y--z से मेल खाता है
 – 
jhnc
4 नवम्बर 2019, 05:30

यदि लुकअराउंड समर्थित हैं और आप रिक्त स्थान के बिना शब्दों का मिलान करना चाहते हैं और शब्द में --- नहीं हो सकता है, लेकिन इसमें -- is . होना चाहिए

(?<!\S)(?!\S*---)\S+--\S+
  • (?<!\S) दावा करें कि बाईं ओर जो है वह एक गैर-व्हाट्सएप वर्ण नहीं है
  • (?!\S*---) दावा करें कि जो दाईं ओर है वह 3 बार नहीं है ---
  • \S+--\S+ 1+ गैर-व्हाट्सएप वर्णों का मिलान करें, -- और फिर से 1+ गैर-व्हाट्सएप वर्ण

रेगेक्स डेमो

4
The fourth bird 1 नवम्बर 2019, 22:21