नोटपैड ++ - क्यों ^ काम नहीं कर रहा है?


16

मैं से दूर जाने की कोशिश कर रहा हूँ TextPad , और मैं बस के रेगुलर एक्सप्रेशन नहीं मिल सकता है ^और $बदला जाएगा। मैंने निश्चित रूप से नियमित अभिव्यक्ति बॉक्स पर टिक किया है।

मैं क्या गलत कर रहा हूं?

मैं एक नई लाइन की शुरुआत खोजने की कोशिश कर रहा हूं। टेक्स्टपैड में, यह '^' है और सुनिश्चित करें कि नियमित अभिव्यक्ति सक्षम है। नोटपैड ++ के साथ ऐसा नहीं करता है। यह सिर्फ "नहीं मिला" कहता है।


मैंने टेक्स्टपैड का उपयोग किया है और इसे इसी मुद्दे को कष्टप्रद (हल्के ढंग से डालने के लिए) पाया है। असल में, एनपीपी के Regex कार्यक्षमता है अवरुद्ध जब अधिकांश अन्य Regex-एस को comared। यह इस तथ्य से उपजा है कि एनपीपी सिंटिला संपादक का एक अमूर्त है जो एकल-लाइन-आधारित RegEx का उपयोग करता है :( - एनपीपी चालक दल इस मुद्दे के बारे में अच्छी तरह से जानते हैं, लेकिन यह (विचित्र रूप से) बैक-बर्नर पर है (एक समय और संसाधन जारी करता है)। $ काम करता है, लेकिन उन्हें बहु-लाइन (अभी तक) काम करने के लिए ^ नहीं मिला है। मुझे पता है कि यह सीमा है, और (और इसे जगाएं) के साथ काम करें। जैसा कि नीचे वर्णित है ^ (।)। । (शायद ही, मैं
TPad

1
पुनश्च। आप प्रायः \ r और \ n के लिए वर्कअराउंड के रूप में विस्तारित (बनाम RegEx ) का उपयोग कर सकते हैं - यह अर्ध-मीमिक्स एक स्टार्ट-ऑफ-लाइन है। इसके अलावा, एक उप-मार्ग के रूप में, आप सामान्य खोज में रह सकते हैं और व्यू - शो सिंबल - शो एंड ऑफ लाइन .. को चालू कर सकते हैं । हालांकि, यदि आप चयन करते हैं, तो वे (फ़ील्ड में) दिखाई नहीं देते हैं। जब आप CTRL + F दबाते हैं, तो CRLF सबसे पहले, ढूँढें-फ़ील्ड ऑटो-प्राइम किक करता है, और यह बहुत खुशी से एक बहु-पंक्ति (लेकिन RegEx नहीं) खोज बन जाता है। यह विस्तारित खोज के लिए बहुत अलग नहीं है , लेकिन मुझे यह दिलचस्प लगा, और कुछ पाठकों को भी ऐसा लग सकता है। (मैं Npp :)
पीटर।

आप वास्तव में एक नई लाइन की शुरुआत करने की कोशिश क्यों कर रहे हैं? क्या आप हर लाइन की शुरुआत में कुछ जोड़ना चाहते हैं? यह वास्तव में सवाल का जवाब देने में हमारी मदद करेगा। यदि आप भुगतान किए गए समाधान से दूर जाने के लिए नोटपैड ++ का उपयोग कर रहे हैं, तो आपको इसके क्वर्क्स और उनके आसपास काम करना सीखना होगा। मुझे ऐसा करने में कोई समस्या नहीं है, क्योंकि नोटपैड ++ इतने सारे अन्य तरीकों से बहुत अच्छा है।
जोशुआ Nurczyk

जवाबों:


25

रेगेक्स में ^ और $ दोनों एंकर हैं , जिसका मतलब है कि यदि आप शाब्दिक वर्णों को बदलना चाहते हैं ^और $आपको उन्हें बचने की जरूरत है, तो आमतौर पर एक अग्रणी बैकस्लैश ( \^और \$) के साथ।

एक लाइन उपयोग पर पहला चरित्र खोजने के लिए ^.

स्टार्ट लाइन एंकर ( ^) एक शून्य-चौड़ाई वाला मैच है, इसलिए इसके साथ संयोजन करना। एक लाइन की शुरुआत में किसी भी चरित्र मिल जाएगा।

शायद आप समझा सकते हैं कि आप वास्तव में क्या करने की कोशिश कर रहे हैं?


8

क्योंकि ये विशेष वर्ण हैं जो रेखा के सामने ( ^) और अंत का प्रतिनिधित्व करते हैं ( $)। उन्हें एक साथ भागने की कोशिश करो \

उदाहरण:

लाइन की शुरुआत में "कैट" का मिलान करें:

^Cat

लाइन के अंत में "कैट" का मिलान करें:

Cat$

मैच "कैट" एक लाइन पर केवल एक चीज के रूप में:

^Cat$

एक पंक्ति में "$ 100" का मिलान करें:

\$100 

यहाँ नोटपैड ++ के भीतर नियमित अभिव्यक्ति मिलान पर बारीकियों के लिए एक लिंक है।


2
लगता है लिंक (प्रभावी रूप से) टूट गया है।
पीटर मोर्टेंसन

5

मैं अपने आप को एक ही मुद्दा था। कुछ परीक्षण और त्रुटि के बाद आप निम्न कार्य करके इसे प्राप्त कर सकते हैं:

खोजें: ^ (।)

बदलें: [वह स्ट्रिंग जिसे आप सम्मिलित करना चाहते हैं] \ 1

यह क्या करेगा लाइन का पहला चरित्र का पता लगाएं और टैग करें, नए स्ट्रिंग में डालें और उसके बाद टैग किए गए वर्ण को डालें।

उदाहरण के लिए, मुझे प्रत्येक पंक्ति के शुरू में एक ही उद्धरण सम्मिलित करने की आवश्यकता है:

खोजें: ^ (।)

प्रतिस्थापित करें: '1

आप लाइन के अंत के लिए ऐसा ही कर सकते हैं:

खोजें: (।) $

बदलें: \ 1 * [स्ट्रिंग जो आप चाहते हैं] *


1

मैं समझ गया।

इससे पहले

  • Albert@hotmail.com
  • Lucas@gmail.com
  • Rober_Klein@aol.com
  • Fisher@zmail.com

उपरांत

  • अल्बर्ट
  • लुकास
  • Rober_Klein
  • मछुआ

चरित्र या पाठ के बाद निकालें

@ (। *) $

चरित्र या पाठ से पहले निकालें

^ (। *) @

dot = any character
asterisk = zero or more times

1

यहां है कि इसे कैसे करना है...

इससे पहले:

$_GET['id']; $_GET['nick'];

उपरांत:

htmlentities($_GET['id']); htmlentities($_GET['nick']);

इसलिए। पर खोज क्षेत्र पुट:

$_GET(.*])

पर की जगह क्षेत्र पुट:

htmlentities($_GET\1)

0

मुद्दा अब तय हो गया है।

नोटपैड ++ v6.9.2 (विंडोज 7 के तहत चल रहा है) में मुझे काम करने के लिए ( ^लाइन की शुरुआत) और $(लाइन के अंत ) दोनों मिलते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.