regex - How do I remove the colon from this capturing group in PCRE, while still capturing correctly? -


इस regex को देखते हुए

  ^ (? पी & lt; book & gt; [\ d]? \  

मैं "अध्याय" समूह को गड़बड़ किए बिना बृहदान्त्र को कैद करने से कैसे रोकूं? अगर मैं बृहदान्त्र को "पद्य" समूह के बाईं तरफ डालता हूं, तो "1 जॉन 3" के रूप में पंजीकृत होता है

  ["book" = & gt; "1 जॉन", "अध्याय" = & gt; "", "कविता" = & gt; "3"]  

लेकिन "1 जॉन 3: 2" को कैप्चर किया गया है

  ["book" = & gt; "1 जॉन", "अध्याय" = & gt; "3", "पद्य" = & gt; मुझे बृहदान्त्र को बाहर करने के लिए कैप्चर करना चाहते हैं, क्योंकि यह एक बेवकूफ रीजेक्स को "ठीक" करने के लिए आवेदन का काम नहीं होना चाहिए। "": 2 "]  

इच्छित परिणाम

  ["पुस्तक" = & gt; "1 जॉन", "अध्याय" = & gt; "3", "पद्य" = & gt; "2"]  

संपादित करें

क्षमा करें, यह नहीं पता था कि उपरोक्त लिंक मेरे द्वारा उपयोग किए जा रहे पाठ को नहीं सहेजता है। यहाँ एक जोड़ी स्ट्रिंग है जिसके खिलाफ मैं परीक्षण कर रहा था:

  1 John 3:12 मैथ्यू 3 2 पीटर 4: 1 सेंट जॉन  

अगर मैं अच्छी तरह समझता हूं कि आप क्या करने की कोशिश कर रहे हैं, तो आप इस पद्धति का उपयोग कर सकते हैं:

  / ^ (? & Lt; book & gt ; (?: \ D \ h +)? [Az] + (?: \ H [az] +) *) (?: \ H + (? & Lt; अध्याय & gt; \ d +) (?:: (? & Lt; कविता और gt; \ D +))?)? $ / Xmi  


Comments

Popular posts from this blog

Docker - Tomcat and PostgreSQL containers in same host - No Route to host -

Python Equivalent for matlab cart2pol and pol2cart -

java - Joda Time Interval Not returning what I expect -