উদাহরণ: "এটি কেবল \ না সরল বাক্য"।
আমি "এটি এটি" এবং "বাক্য" এর মধ্যে প্রতিটি চরিত্রের সাথে মিল রাখতে চাই। লাইন বিরতি উপেক্ষা করা উচিত। আমি সঠিক বাক্য গঠন বুঝতে পারি না।
উদাহরণ: "এটি কেবল \ না সরল বাক্য"।
আমি "এটি এটি" এবং "বাক্য" এর মধ্যে প্রতিটি চরিত্রের সাথে মিল রাখতে চাই। লাইন বিরতি উপেক্ষা করা উচিত। আমি সঠিক বাক্য গঠন বুঝতে পারি না।
উত্তর:
উদাহরণ স্বরূপ
(?<=This is)(.*)(?=sentence)
আমি চেহারাটি পিছনে ব্যবহার করেছি (?<=)
এবং এগিয়ে চেয়েছি (?=)
যাতে "এটি" এবং "বাক্য" ম্যাচে অন্তর্ভুক্ত না হয়, তবে এটি আপনার ব্যবহারের ক্ষেত্রে, আপনি কেবল লিখতেও পারেন This is(.*)sentence
।
এখানে গুরুত্বপূর্ণ বিষয়টি হ'ল আপনি নিজের রেগেক্স ইঞ্জিনের "ডটল" মোডটি সক্রিয় করেন, যাতে .
নতুন লাইনের সাথে মিলছে। তবে আপনি এটি কীভাবে করবেন তা নির্ভর করে আপনার রেজেক্স ইঞ্জিনের উপর।
পরের জিনিসটি যদি আপনি ব্যবহার করেন .*
বা করেন .*?
। প্রথমটি লোভী এবং আপনার স্ট্রিংয়ের শেষ "বাক্য" পর্যন্ত মিলবে, দ্বিতীয়টি অলস এবং আপনার স্ট্রিংয়ের পরবর্তী "বাক্য" পর্যন্ত মিলবে।
হালনাগাদ
This is(?s)(.*)sentence
যেখানে (? গুলি) ডটল সংশোধকটি চালু করে, .
নতুন লাইনের অক্ষরগুলির সাথে মিলে যায়।
আপডেট 2:
(?<=is \()(.*?)(?=\s*\))
আপনার উদাহরণটির সাথে মিলছে "এটি (একটি সাধারণ) বাক্য"। রেজেক্সারে এখানে দেখুন
This is(?s)(.*)sentence
কাজ করব?
এই প্রশ্নের পুনরুত্থান কারণ গ্রহণযোগ্য উত্তরের রেজেেক্স আমার কাছে বেশ সঠিক বলে মনে হচ্ছে না। কেন? কারণ
(?<=This is)(.*)(?=sentence)
ম্যাচ হবে my first sentence. This is my second
মধ্যেThis is my first sentence. This is my second sentence.
দুটি দর্শনের মধ্যে আপনার একটি অলস পরিমাণের প্রয়োজন। একটি যোগ করা ?
তারাকে অলস করে তোলে।
এটি আপনি যা চান তা মেলে:
(?<=This is).*?(?=sentence)
ডেমো দেখুন । আমি ক্যাপচার গ্রুপটি সরিয়েছি, যার দরকার নেই।
লাইন বিরতি জুড়ে ডটল মোড atch
নোট করুন যে ডেমোতে "ডট ম্যাচস লাইন ব্রেক ব্রেক মোড" (ওরফে) ডট-অল সেট করা আছে (দেখুন কীভাবে বিভিন্ন ভাষায় ডটল চালু করবেন )। অনেকগুলি রেজেক্স স্বাদে, আপনি এটিকে অনলাইন সংশোধক দিয়ে সেট করতে পারেন (?s)
, এক্সপ্রেশনটিকে রূপান্তরিত করুন:
(?s)(?<=This is).*?(?=sentence)
উল্লেখ
.*
এবং .*?
আমার উত্তর (আগে "আপডেট" অনুচ্ছেদ) ব্যাখ্যা করা হয়েছে। সুতরাং আমার উত্তরটি ভুল বলে আমি মনে করি না।
is incorrect
করার doesn't seem quite correct to me
... আশা করি যে দেখা যায় না আপনি পিটপিট্, সম্ভবত শুধু একটি কি এই ধরনের একটি উচ্চ ট্রাফিক উত্তরের জন্য Regex হওয়া উচিত সম্পর্কে উপলব্ধি পার্থক্য।
চেষ্টা করুন This is[\s\S]*sentence
, জাভাস্ক্রিপ্টে কাজ করে
[\s\S]*?
(এছাড়াও বলা হয়: অ লোভী ওয়াইল্ডকার্ড)
এই:
This is (.*?) sentence
জাভাস্ক্রিপ্টে কাজ করে।
এটা ব্যবহার কর: (?<=beginningstringname)(.*\n?)(?=endstringname)
endstringname
যদি কেউ জেনকিন্স প্রসঙ্গে এর উদাহরণ খুঁজছেন। এটি বিল্ড.লগকে পার্স করে এবং যদি এটি কোনও মিল খুঁজে পায় তবে এটি ম্যাচের সাথে বিল্ডটিকে ব্যর্থ করে।
import java.util.regex.Matcher;
import java.util.regex.Pattern;
node{
stage("parse"){
def file = readFile 'build.log'
def regex = ~"(?s)(firstStringToUse(.*)secondStringToUse)"
Matcher match = regex.matcher(file)
match.find() {
capturedText = match.group(1)
error(capturedText)
}
}
}
আপনি কেবল এটি ব্যবহার করতে পারেন: \This is .*? \sentence
উত্সাহ পাঠ্যে, আপনি কেবল দুটি ক্ষেত্রে লিখুন যা আপনি আগ্রহী হিসাবে উদাহরণস্বরূপ আপনার ক্ষেত্রে এটি রাখতে চান
"এটি" এবং "বাক্য"
এবং আপনি লিখুন। * এর মধ্যে
অর্থাত This is .* sentence
এবং এটি আপনার ভাল করা উচিত
আমি এটি কীভাবে করেছি তা এখানে:
নির্দিষ্ট রেজেক্সটি প্রয়োজনীয় করার চেয়ে এটি আমার পক্ষে সহজ।
int indexPictureData = result.IndexOf("-PictureData:");
int indexIdentity = result.IndexOf("-Identity:");
string returnValue = result.Remove(indexPictureData + 13);
returnValue = returnValue + " [bytecoderemoved] " + result.Remove(0, indexIdentity); `
পাইথন 3-এর জন্য পুরানো স্ক্রিপ্টগুলিতে পাইথন 2-এ, মুদ্রণ "স্ট্রিং" এর মধ্যে এই মুদ্রণ সিনট্যাক্সটি রূপান্তর করতে আমি রেগেক্সের অনুসন্ধানে এখানে পৌঁছেছি print ভাল কাজ করে, অন্যথায় অতিরিক্ত রূপান্তরগুলির জন্য 2to3.py ব্যবহার করুন। অন্যদের জন্য আমার সমাধানটি এখানে:
এটি Regexr.com এ চেষ্টা করে দেখুন (কোনও কারণে এনপি ++ এ কাজ করে না):
find: (?<=print)( ')(.*)(')
replace: ('$2')
ভেরিয়েবলের জন্য:
(?<=print)( )(.*)(\n)
('$2')\n
লেবেল এবং পরিবর্তনশীল জন্য:
(?<=print)( ')(.*)(',)(.*)(\n)
('$2',$4)\n
পাইথন 3 এর মুদ্রণ ("স্ট্রিং") দিয়ে পাইথন 2 এর সমস্ত মুদ্রণ "স্ট্রিং" কীভাবে প্রতিস্থাপন করবেন?
জাভা পদ্ধতির সাহায্যে দুটি স্ট্রিংয়ের মধ্যে সমস্ত কিছুর সাথে মিলিয়ে যাওয়ার জন্য RegEx।
List<String> results = new ArrayList<>(); //For storing results
String example = "Code will save the world";
RegEx (। ?) * ব্যবহার করতে প্যাটার্ন এবং ম্যাচার অবজেক্ট ব্যবহার করা যাক ।
Pattern p = Pattern.compile("Code "(.*?)" world"); //java.util.regex.Pattern;
Matcher m = p.matcher(example); //java.util.regex.Matcher;
ম্যাচারে যেহেতু একাধিক ম্যাচ থাকতে পারে, তাই আমাদের ফলাফলগুলি লুপ করে সংরক্ষণ করতে হবে।
while(m.find()){ //Loop through all matches
results.add(m.group()); //Get value and store in collection.
}
এই উদাহরণটিতে কেবল " শব্দটি সংরক্ষণ করবে" থাকবে তবে বড় পাঠ্যে এটি সম্ভবত আরও মিল খুঁজে পাবে।