पैटर्न (?<!(asp|php|jsp))\?.*
पीसीआरई में काम करता है, लेकिन यह पायथन में काम नहीं करता है।पायथन रेगेक्स नकारात्मक लुकबींड
तो पाइथन में यह रेगेक्स काम करने के लिए मैं क्या कर सकता हूं? (पायथन 2.7)
पैटर्न (?<!(asp|php|jsp))\?.*
पीसीआरई में काम करता है, लेकिन यह पायथन में काम नहीं करता है।पायथन रेगेक्स नकारात्मक लुकबींड
तो पाइथन में यह रेगेक्स काम करने के लिए मैं क्या कर सकता हूं? (पायथन 2.7)
यह मेरे लिए बिल्कुल ठीक काम करता है। क्या आप शायद इसे गलत इस्तेमाल कर रहे हैं? re.match
के बजाय re.search
उपयोग करना सुनिश्चित करें:
>>> import re
>>> s = 'somestring.asp?1=123'
>>> re.search(r"(?<!(asp|php|jsp))\?.*", s)
>>> s = 'somestring.xml?1=123'
>>> re.search(r"(?<!(asp|php|jsp))\?.*", s)
<_sre.SRE_Match object at 0x0000000002DCB098>
कौन सा ठीक है कि कैसे अपने पैटर्न व्यवहार करना चाहिए। जैसा कि glglgl का उल्लेख है, यदि आप Match
ऑब्जेक्ट को एक चर (m
कहें) निर्दिष्ट करते हैं तो आप मैच प्राप्त कर सकते हैं और फिर m.group()
पर कॉल करें। इससे ?1=123
उत्पन्न होता है।
वैसे, आप आंतरिक कोष्ठक छोड़ सकते हैं। यह पैटर्न बराबर है:
(?<!asp|php|jsp)\?.*
कर सकता है ... और 're.search (r" (? glglgl
यह कैसे काम नहीं करता है? क्या यह एक त्रुटि देता है? यदि ऐसा है, तो त्रुटि पोस्ट करें। क्या आप इसकी अपेक्षा से मेल नहीं खाते हैं? यदि ऐसा है, तो उस कोड को पोस्ट करें जहां आप इसका उपयोग करते हैं और आउटपुट दिखाते हैं जो आप बनाते हैं। आप क्या उम्मीद करते हैं। – BrenBarn
फिर से मॉड्यूल के लिए [doc] (http://docs.python.org/2/library/re.html) है, स्पष्ट रूप से नकारात्मक दिखने वाले अनुमानों का राज्य समर्थन। –
नकारात्मक दिखने तब तक काम करते हैं जब तक कि सभी विकल्पों में समान लंबाई न हो। तो यह '(? georg