2011-05-07 13 views
28

में मैं ++regex या नोटपैड ++

action421 
action732 
action983 

अन्य सभी actionXXX संयोजन नोटपैड में सभी निम्नलिखित उदाहरणों को खोजने लेकिन ध्यान नहीं देना चाहते।

मैं action(421)|(732)|(983) जैसा रेगेक्स ढूंढ रहा हूं लेकिन यह काम नहीं करता है। क्या रेगेक्स होगा?

notepad++ regex engine भी OR ऑपरेटर है?

+3

संस्करण 10.1.1 के रूप में नोटपैड ++ रेगेक्स इंजन में एक OR ऑपरेटर है। –

उत्तर

34

ऐसा लगता है जैसे डॉन हो ने RegEx या |
नोटपैड (संस्करण 6.1.1) का नवीनतम संस्करण नोटपैड ++ मूल Find पर ऑपरेटर। here

से
डाउनलोड नोटपैड 6.1.1 नोटपैड 6.1.1 स्थापित करें, तो खोज-> ढूंढें
खोजें करने के लिए जाने क्या: action(421|732|983)
खोज मोड: (*) Regular Expression

Find Next बटन पर क्लिक करें

+1

6.0 में पूर्ण रेगेक्स मेरे द्वारा जोड़ा गया था। यह कई दौरों में सुधार और अन्य योगदान (मुख्य रूप से एफआर बॉयर) के माध्यम से चला गया है, और 6.3.1 में काफी स्थिर, ठोस और क्या-आप उम्मीद है। –

8

अब नोटपैड> = 10.1.1 में यह संभव है।Dragos Toader के अनुसार: "आज के रूप में नवीनतम संस्करण (नोटपैड 10.1.1) का समर्थन करता है | RegEx में" ==

नीचे

== मूल जवाब संभव नहीं नोटपैड में है ++। See this answer.

लेकिन आपका रेगेक्स सही नहीं है। यह काम करेगा: action(421|732|983) अगर नोटपैड ++ ने | को रेगेक्स में समर्थित किया है।

+0

हम्म ... यह काम करने के लिए प्रतीत नहीं होता है !? मेरे नोटपैड ++ में वैसे भी नहीं ... ** संपादित करें ** @ जोनाथन यह आपके लिए काम करता है ?? – Rudie

+0

यह काम नहीं करता है - मुझे लगता है कि कार्रवाई 4273283 और action4213983 के संयोजन मिलेंगे ... – Jonathan

+0

नहीं '('और')' समूह का मतलब है। '|' का अर्थ है 'OR'। PHP में यह regex पूरी तरह से काम करता है। नोटपैड ++ में मैं इसे काम नहीं कर सकता। मैंने PHP में एक उदाहरण के साथ उत्तर अद्यतन किया है जो काम करता है। – Rudie

0

आपका रेगेक्स सही लगता है। लेकिन इस का उपयोग करने का प्रयास करें:

action(421|732|983) 
+0

यह काम नहीं करता है - मुझे लगता है कि कार्रवाई 4273283 और action4213983 के संयोजन मिलेंगे ... – Jonathan

1

Notepad ++ doesn't support प्रत्यावर्तन ऑपरेटर |। आप टेक्स्टफैक्स ctrl + आर regexp विकल्प का प्रयास कर सकते हैं लेकिन मुझे लगता है कि यह भी सच है।

+0

स्किंटिला RegEx के बारे में सही कार्यक्षमता जो नोटपैड ++ के मूल में है। हालांकि, प्लगइन्स का उपयोग करके नोटपैड ++ व्यवहार को संशोधित किया जा सकता है। केवल खोज या खोज-और-प्रतिस्थापन संचालन को बाहरी प्लगइन lib फ़ंक्शन पर रीडायरेक्ट किया जा सकता है। नोटपैड ++ पायथनस्क्रिप्ट प्लगइन पाइथन नियमित अभिव्यक्ति खोजों का समर्थन करता है और संचालन को प्रतिस्थापित करता है और प्रतिस्थापित करता है। नीचे मेरा जवाब देखें। –

+0

आज के नवीनतम संस्करण (नोटपैड 10.1.1) का समर्थन करता है। RegEx –

7

आप नोटपैड ++ के लिए regex helper plugin का उपयोग कर सकते हैं, लेकिन यह प्रतिस्थापन के बजाय रेगेक्स विकास के लिए अधिक है, लेकिन यदि आप बस खोजना चाहते हैं, तो मुझे लगता है कि यह प्लगइन सहायक हो सकता है।

enter image description here

+0

धन्यवाद, लेकिन मुझे वास्तव में "वर्तमान दस्तावेज़ में सभी ढूंढें" और "गिनती" जैसी सुविधाओं की आवश्यकता है, जो नोटपैड ++ है ... – Jonathan

+1

@ जोनाथन आप सभी को ढूंढते हैं और गिनते हैं। स्क्रीनशॉट को देखो। यह खिड़की के निचले दाएं भाग में, सभी को भी हाइलाइट करता है, आपको गिनती मिलती है। – manojlds

+0

आप सही हैं, मुझे अभी भी रेगेक्स हेल्पर सीमित उपकरण – Jonathan

1

उपयोग PythonScript Notepad ++ पायथन नियमित अभिव्यक्ति खोज कार्य के लिए प्लगइन।
कार्यों

Editor.pysearch(expression, function[, flags[, startLine[, endLine]]]) 

या

Editor.pymlsearch(expression, function[, flags[, startPosition[, endPosition]]]) 

यहाँ एक सरल अजगर नियमित अभिव्यक्ति खोज समारोह editor.pysearch()
मैं तो तुम में डिबग कोड के बहुत सारे छोड़ दिया है का उपयोग कर कार्यक्रम है के लिए here देखें देख सकते हैं कि फ़ंक्शन रन के दौरान क्या हो रहा है।

# $Revision: 1.3 $ 
# $Author: dot $ 
# $Date: 2012/04/19 00:03:26 $ 

from Npp import * 
import re, string 

expression = notepad.prompt(
       "Enter the RegEx search string then press Enter", 
       "RegEx and Search" , 
       "") 

debug = True 
#debug = False 

if debug: 
    bufferID = notepad.getCurrentBufferID() 

if debug: 
    # Show console for debugging 
    console.clear() 
    console.show() 

if expression != None: 
    expressionSansNl = expression.replace('\r\n', '') 

    if debug: 
     console.write(expression + "\n") 

    # First we'll start an undo action, then Ctrl-Z will undo the actions of the whole script 
    editor.beginUndoAction() 

    if debug: 
     console.write('editor.pysearch(r"%s" % expressionSansNl, None)\n') 

    editor.pysearch(r"%s" % expressionSansNl, None) 

    # End the undo action, so Ctrl-Z will undo the above two actions 
    editor.endUndoAction() 

# Debug 
if debug: 
    notepad.activateBufferID(bufferID) 

मानचित्र नोटपैड को यह स्क्रिप्ट ++ शॉर्टकट Ctrl+<ChooseALetter> और इसे चलाने के।
खोज में टाइप करें RegEx action(421|732|983)
पायथन पुन: प्रलेखन here के अनुसार, | RegEx ऑपरेटर समर्थित है।

मैंने इसका परीक्षण नहीं किया है - शायद pysearch() फ़ंक्शन में कोई भी पैरामीटर
फ़ंक्शन होने के लिए परिणामस्वरूप स्ट्रिंग का चयन करेगा।दस्तावेज़ों के अनुसार here,
फ़ंक्शन को एक अजगर MatchObject वापस करना चाहिए। मुझे लगता है कि MatchObject से
मिलान स्ट्रिंग प्राप्त करने का एक तरीका है और संपादक ऑब्जेक्ट में
स्ट्रिंग के उस मिलान की अगली उपस्थिति का चयन करें। एक बार जब मैं
कोडिंग कर रहा हूं और इसका परीक्षण कर रहा हूं तो मैं जवाब का एक नया संशोधन पोस्ट करूंगा।

+0

मिल गया है यह उत्तर 10.1.1 से पहले नोटपैड ++ संस्करणों के लिए है। नोटपैड ++ में, RegEx OR | ऑपरेटर उपलब्ध है। –