নোটপ্যাড ++ এর প্রতিটি স্ট্রিংয়ে থাকা সংখ্যায় সমস্ত স্ট্রিং কীভাবে প্রতিস্থাপন করবেন?


108

আমি নিম্নলিখিত প্যাটার্ন সহ সমস্ত মান সন্ধান করার চেষ্টা করছি:

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

এবং স্কোপগুলির ভিতরে মান সহ এটি প্রতিস্থাপন করুন।

প্যাটার্নটি সন্ধান করতে আমি নীচের রেজেক্স ব্যবহার করছি:

.*"\d+"

আমি কীভাবে প্রতিস্থাপন করতে পারি?


2
প্রতিস্থাপন অংশটি কী? আপনি একটি উদাহরণ দিতে পারেন?
টোটো

^। * মান = "([^"] *) "। * this এই রেজেক্সটি পরীক্ষা করে দেখুন এবং মানটি যেখানে মূল্য প্রয়োজন সেখানে 1 rep 1 প্রতিস্থাপন করুন
নিখিল কেএস

উত্তর:


191

নোটপ্যাড ++ প্রতিস্থাপন করতে, প্রতিস্থাপন মেনু খুলতে Ctrl+ টিপুন H

তারপরে আপনি যদি "নিয়মিত অভিব্যক্তি" বোতামটি পরীক্ষা করেন এবং আপনি আপনার প্রতিস্থাপনের সাথে আপনার মিলে যাওয়ার প্যাটার্নের একটি অংশ ব্যবহার করতে চান তবে আপনাকে অবশ্যই "ক্যাপচার গ্রুপগুলি" ( গুগলে আরও পড়ুন ) ব্যবহার করতে হবে । উদাহরণস্বরূপ, ধরুন যে আপনি নিম্নলিখিত লাইনগুলির প্রত্যেকটির সাথে মেলাতে চান

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

.*"\d+"প্যাটার্নটি ব্যবহার করে এবং কেবল সংখ্যাটি রাখতে চাই। তারপরে আপনি বন্ধনী (এবং এর )মতো: আপনার ম্যাচের প্যাটার্নে ক্যাপচার গ্রুপটি ব্যবহার করতে পারেন .*"(\d+)"। সুতরাং এখন আপনার প্রতিস্থাপনে আপনি কেবল লিখতে পারেন $1, যেখানে 1 ম ক্যাপচারিং গ্রুপের মান উল্লেখ করে এবং প্রতিটি সফল ম্যাচের জন্য নম্বরটি ফিরিয়ে দেবে। যদি আপনি দুই ক্যাপচার গ্রুপ ছিল, উদাহরণস্বরূপ (.*)="(\d+)", $1স্ট্রিং ফিরে আসবে valueএবং $2সংখ্যা ফিরে আসবে।

সুতরাং ব্যবহার করে:

অনুসন্ধান: .*"(\d+)"

প্রতিস্থাপন করুন: $1

এটি আপনাকে ফিরিয়ে দেবে

4
403
200
201
116
15

দয়া করে নোট করুন যে পূর্বোক্ত প্যাটার্নটি মেলার অনেকগুলি বিকল্প এবং আরও ভাল উপায়। উদাহরণস্বরূপ প্যাটার্নটি value="([0-9]+)"আরও ভাল হবে, যেহেতু এটি আরও সুনির্দিষ্ট এবং আপনি নিশ্চিত হন যে এটি কেবল এই লাইনের সাথে মেলে match ক্যাপচার গ্রুপগুলি ব্যবহার না করে প্রতিস্থাপন করা এমনকি সম্ভব, তবে এটি একটি সামান্য আরও উন্নত বিষয়, তাই আমি এখনই ছেড়ে দেব :)


19
প্রতিস্থাপনের $1জন্য, আমার পক্ষে কাজ করেনি। আমি \1পরিবর্তে ব্যবহার এবং এটি কাজ করে।
জেসন হুইলারের

12
\1নোটপ্যাড ++ এর সমস্ত সংস্করণে কাজ করে। $1শুধুমাত্র নতুন ক্ষেত্রে কাজ করে।
Culub

আমি অনুমান করছি এটি Hex Editorপ্লাগইনটিতে কাজ করে না । হেক্স ভিউ মোডে নোটপ্যাড ++ Regular Expressionঅনুসন্ধান / প্রতিস্থাপনের বিকল্পটি দেখায় না । পাঠ্য দর্শন মোডে আমি Regular Expressionঅনুসন্ধান / প্রতিস্থাপনের বিকল্পটি দেখতে পাচ্ছি । আমি নোটপ্যাড ++ সংস্করণ 6.9.2 ব্যবহার করছি, যা এই সময়ে বর্তমান সংস্করণ।
কেভিন ফেগান

15

পিএসএক্সএলএস একটি দুর্দান্ত উত্তর দিয়েছে তবে আমি মনে করি আমার নোটপ্যাড ++ সংস্করণটি কিছুটা আলাদা তাই $ (ডলার সাইন) ক্যাপচারটি কার্যকর হয়নি।

আমার নোটপ্যাড ++ v.5.9.3 রয়েছে এবং আপনি কীভাবে আপনার কার্য সম্পাদন করতে পারবেন তা এখানে:

প্যাটার্নটির জন্য অনুসন্ধান করুন: মান = \ "([0-9] *) \" এবং এর সাথে প্রতিস্থাপন করুন: \ 1 (আপনি যে ক্যাপচারিং গ্রুপটির চারপাশে যা করতে চান)

যাত্রা। বর্গাকার বন্ধনী দ্বারা চারপাশে

[\ 1] -> মান = "[4]" উত্পাদন করবে


1
\1নম্বর রাখতে আমাকে সাহায্য করেছে তবে এর পিছনে উদ্ধৃতি সরিয়ে ফেলুন। আমার মতো একটি নথিতে প্রায় 74৪০০ টি লাইন ছিল tablename.columnname = '12345'। প্রথম উদ্ধৃতিটি সরানো সহজ ছিল, দ্বিতীয়টি \1প্রতিস্থাপন পাঠ্যবক্সে আপনার ব্যবহার করে করা হয়েছিল। ধন্যবাদ, +1
বেন ফ্রান্সসেন

6

প্রতিস্থাপন করা (.*")\d+(")

সঙ্গে $1x$2

xআপনার "স্কোপের ভিতরে মান" কোথায় ।


0

আমার নোটপ্যাড ++ v6.8.8 আছে

সন্ধান করুন : [([a-zA-Z])]

প্রতিস্থাপন করুন : [\ '\ 1 \']

উত্পাদন করবে: $ অ্যারে [XYZ] => ray অ্যারে ['XYZ']


-3

অনুসন্ধান: value="([\d]+|[\d])"

প্রতিস্থাপন করুন: \1

এটা সত্যিই আপনাকে ফিরিয়ে দেবে

4
403
200
201
116
15

JS:

a='value="4"\nvalue="403"\nvalue="200"\nvalue="201"\nvalue="116"\nvalue="15"';
a = a.replace(/value="([\d]+|[\d])"/g, '$1');
console.log(a);

3
এই জাভাস্ক্রিপ্ট সমাধানটি নোটপ্যাড ++ দিয়ে ট্যাগ করা প্রশ্নের সাথে কীভাবে সম্পর্কিত?
জেসন অ্যালার

নোটপ্যাড ++ এর সাথে ট্যাগ হওয়া প্রশ্নের সাথে কীভাবে ত্রুটিযুক্ত, ভাঙা প্রতিক্রিয়াগুলি 1 এবং 2 সম্পর্কিত হতে পারে?
ব্যবহারকারী3178007

আমি কেন এখানে প্রশ্ন জিজ্ঞাসা করেছি? কারণ আমি প্রশ্ন তৈরি করতে পারি না। কারণ আমার যথেষ্ট সুনামের স্কোর নেই।
ব্যবহারকারী3178007

1
আপনার দাবি অনুসারে প্রশ্ন জিজ্ঞাসার জন্য এ জাতীয় কোনও খ্যাতির প্রয়োজন নেই - আপনি সম্ভবত সীমাবদ্ধ থাকতে পারতেন না । : আবার চেষ্টা করুন stackoverflow.com/questions/ask
BoltClock

প্রশ্ন করা হয়েছিল। stackoverflow.com/questions/24112018/… তবে অনুসন্ধানে শব্দগুলিতে সীমাবদ্ধ। সীমাবদ্ধতা!
ব্যবহারকারী3178007
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.