Regex: একটি স্ট্রিং দুটি ট্যাগ মধ্যে একটি সাব-স্ট্রিং খুঁজে বের করতে

আমার কাছে নিম্নোক্ত বিন্যাসে একটি ফাইল আছে:

Data Data
Data
[Start]
Data I want
[End]
Data

আমি রেজক্স ব্যবহার করে তথ্যটি এবং [প্রারম্ভ] এবং [শেষ] ট্যাগের মধ্য থেকে লিখতে চাই। কেউ কি আমাকে দেখাতে পারে কিভাবে এটা করা যেতে পারে?

0
"ট্যাগের মধ্যে পাঠ্য পেতে RegEx" -এর অনুরূপ - stackoverflow.com/questions/353309/…
যোগ লেখক Robinicks, উৎস

13 উত্তর

$ {\ rm S} _6 $ একটি সীমিত গ্রুপের অটোমোফিজম গ্রুপ নয়। এইচ। কে দেখুন অযৌক্তিক, সমীকরণটি সমাধান করতে অট (এক্স) = জি , রকি মাউন্টেন জ। ম্যাথ। 9 (1979), না। 4, 653 - 670, অনলাইন উপলব্ধ এখানে

এই কাগজ প্রমাণ করে যে কোনও সীমিত গ্রুপ $ G $ জন্য, finitely অনেক আছে $ {\ rm অটি} (এক্স) = G $ সঙ্গে সীমাবদ্ধ গ্রুপ $ এক্স $, এবং এটি স্পষ্টভাবে solves $ G $ এর কিছু নির্দিষ্ট মানগুলির সমীকরণ বিশেষত, থিওরেম 4.4 টি $ G $ এর জন্য সম্পূর্ণ সমাধান প্রদান করে একটি সিম্যাট্রিক গ্রুপ, এবং যখন $ n = 6 $ কোনও $ X $ নেই

80
যোগ

এটা সম্ভবত মূল্য ইঙ্গিত সম্ভবত

বেলোলিপিটস্কি, মিখাইল; Lubotzky,   আলেকজান্ডার। পরিমিত গ্রুপ এবং   হাইপারবোলিক ম্যানিফেক্স উদ্ভাবন করছ। ম্যাথ।   16২ (২005), না। 3, 459-472 MR2198218

যেখানে এটি দেখানো হয় যে প্রতিটি সসীম গোষ্ঠীর জন্য, একটি অসীম গ্রুপ গামা আউট (গ্যামা) = জি আছে।

30
যোগ
একটি শক্তিশালী ফলাফল আছে Google এবং _acct = C000022659 & _version = 1 & _urlVersion = 0 & _userid = 501045 & md5 = 0c287de2112b97f650c0dd71c898359f "> এখানে sciidentirect.com/… ; গণনীয় গ্রুপ জন্য
যোগ লেখক Qiaochu Yuan, উৎস

অন্যদিকে, $ {\ rm S} _6 $ isomorphic $ {\ rm স্প} _4 (\ mathbb {F} _2) $, তাই এটি অন্য বিভাগের একটি automorphism গ্রুপ (গ্রুপ ছাড়া অন্য বা সেট) এই automorphism 2 টাওয়ার এ খুঁজছেন দ্বারা প্রদর্শিত হয় জেকবিয়ন একটি hyperelliptic বক্ররেখা এইচ এর বংশধর 2 (যদি $ H $ দ্বারা দেওয়া হয় $ y ^ 2 = f (x) $, ডিগ্রী 6 এর $ f $, তারপর 15 টি অ-তুচ্ছ দুটি টর্শন পয়েন্ট হল $ f $ এর শিকড়ের পার্থক্য দ্বারা [একটি গালাইসিস মডিউল হিসাবে] দেওয়া হয়েছে; উইকি পৃষ্ঠা দেখুন জন্য কামার পৃষ্ঠ )।

15
যোগ
আপনার অর্থ SP_4 (F_2), আমি নিশ্চিত, - SL_4 (F_2) S_6 হতে কেবল খুব বড়।
যোগ লেখক Vladimir Dotsenko, উৎস

There is a whole array of results, going back to G. Birkhoff at 1930s saying that every group is an automorphism group of some universal algebra (or some universal algebra inside some class).
(This really should be merely a comment to the previous answer, but I am still not reputable enough to leave comments).

6
যোগ
এদিকে আপনার মন্তব্য করার যথেষ্ট পয়েন্ট আছে!
যোগ লেখক Stefan Kohl, উৎস

পার্ল দিয়ে আপনি যে তথ্যটি() এর সাথে চান তা ঘিরে ফেলতে পারেন এবং পরে তা টানতে পারেন, সম্ভবত অন্যান্য ভাষায় একই রকম বৈশিষ্ট্য রয়েছে।

if ($s_output =~ /(data data data data START(data data data)END (data data)/) 
{
    $dataAllOfIt = $1;      # 1 full string
    $dataInMiddle = $2;     # 2 Middle Data
    $dataAtEnd = $3;        # 3 End Data
}
0
যোগ
\[start\]\s*(((?!\[start\]|\[end\]).)+)\s*\[end\]

এটি অবশ্যই [শুরু] </কোড> এবং [শেষ] </কোড> মার্কারগুলিও ড্রপ করতে হবে।

0
যোগ
যদি আপনি অপ্রত্যাশিত [সূচনা] </কোড> বা [শেষ] </কোড> এর আগে দেখেন তবে তা নিঃসন্দেহে কম দক্ষ হতে পারে কিন্তু আমি তা পছন্দ করি না। এটা প্রজন্মের মামলাগুলি সম্পর্কে সবসময় চিন্তা করে এবং তাদেরকে অব্যাহতি দেয়।
যোগ লেখক Alex W, উৎস
\[start\](.*?)\[end\]

একটি ক্যাপচার মধ্যে Zhich'll মাঝখানে টেক্সট লিখুন

0
যোগ
গৃহীত উত্তরের চেয়ে আরও ভাল (সহজ) ... :-)
যোগ লেখক PhiLho, উৎস
এই এখনও লাইন বিরতি আছে স্ট্রিং ধরা হবে না
যোগ লেখক Doug, উৎস
@ ডগ ব্যবহার অপশন ডটলেল Regex একটি সমস্যা নয়।
যোগ লেখক AlexR, উৎস

ওয়েল, যদি আপনি গ্যারান্টি দেন যে প্রতিটি শুরু ট্যাগ একটি শেষ ট্যাগ দ্বারা অনুসরণ করা হয় তাহলে নিম্নলিখিত কাজ করবে।

\[start\](.*?)\[end\]

যাইহোক, যদি আপনার জটিল লেখা যেমন follwoing:

[start] sometext [start] sometext2 [end] sometext [end]

তারপর আপনি regex সঙ্গে সমস্যা চালাতে হবে।

এখন নিম্নলিখিত উদাহরণটি একটি পৃষ্ঠায় সমস্ত গরম লিঙ্কগুলি টেনে আনবে:

'//i'

উপরের ক্ষেত্রে আমরা গ্যারান্টি দিতে পারি যে কোন নেস্টেড কেস থাকবে না:

''

সুতরাং, এটি একটি জটিল প্রশ্ন এবং কেবল একটি সহজ উত্তর দিয়ে সমাধান করা যাবে না।

0
যোগ

মিলে যাওয়া ট্যাগ খুঁজে পেতে একটি regex ব্যবহার করে দুর্ঘটনার আরও সম্পূর্ণ আলোচনা পাওয়া যাবে: http: //faq.perl.org/perlfaq4.html#How_do_I_find_matchi । বিশেষ করে, সচেতন থাকুন যে নেস্টিং ট্যাগ সঠিকভাবে সম্পূর্ণভাবে ব্যাখ্যা করার জন্য একটি পূর্ণাঙ্গ পার্সার প্রয়োজন।

লক্ষ করুন যে, কেস সংবেদনশীলতাকে অবশ্যই প্রশ্নটির উত্তর দেওয়ার জন্য বন্ধ করা হবে যেমন বলা হয়েছে। পারল ইন, যে আমি সংশোধক:

$ echo "Data Data Data [Start] Data i want [End] Data" \
  | perl -ne '/\[start\](.*?)\[end\]/i; print "$1\n"'
 Data i want 

অন্য কৌতুকটি কি *? কোয়ান্টিফায়ার ব্যবহার করতে হয় যা বন্দীকৃত ম্যাচটির লোভতা বন্ধ করে দেয়। উদাহরণস্বরূপ, আপনার যদি একটি অ-মেলিং [শেষ] ট্যাগ থাকে তাহলে:

Data Data [Start] Data i want [End] Data [end]

আপনি সম্ভবত ক্যাপচার করতে চান না:

 Data i want [End] Data
0
যোগ

আপনি খোলার এবং খোলার মধ্যে ডাটা বিশ্লেষণ করতে একটি নিয়মিত এক্সপ্রেশন ব্যবহার করতে পারেন, আপনি এটি নিচে যেতে চান একটি পথ কিনা হিসাবে দীর্ঘ এবং কঠিন মনে প্রয়োজন। এটির মূল কারণটি হল নেস্টের ট্যাগগুলির সম্ভাব্যতা: যদি ঘিরে থাকা ট্যাগগুলি কখনো ঘটতে বা ঘটতে পারে তবে ভাষাটিকে আর নিয়মিত বলা হয় না এবং রেগুলার এক্সপ্রেশনটি পার্সিংয়ের জন্য উপযুক্ত সরঞ্জাম হিসেবে বন্ধ করা হয়।

অনেক নিয়মিত এক্সপ্রেশন বাস্তবায়ন, যেমন PCRE বা Perl এর নিয়মিত এক্সপ্রেশন, backtracking সমর্থন যা এই রুক্ষ প্রভাব অর্জন করতে ব্যবহার করা যেতে পারে। কিন্তু PCRE (Perl ব্যতীত) সীমাহীন ব্যাক্ট্যাকিং সমর্থন করে না, এবং এইগুলি আসলে অনেকগুলি অদ্ভুত উপায়েই বিরতির কারণ হতে পারে যতক্ষণ আপনার অনেকগুলি ট্যাগ থাকে।

একটি খুব সাধারণভাবে উদ্ধৃত ব্লগ পোস্ট আছে যা এই আরো আলোচনা করে, http://kore-nordmann.de/ ব্লগ / do_NOT_parse_using_regexp.html (এটির জন্য গুগল এবং বর্তমানে ক্যাশে চেক করুন, তারা মনে করে কিছু ডাউনটাইম আছে)

0
যোগ
$text ="Data Data Data start Data i want end Data";
($content) = $text =~ m/ start (.*) end /;
print $content;

I had a similar problem for a while & I can tell you this method works...

0
যোগ

স্পেস অক্ষর এবং বিন্দু (<�কোড>। ) দিয়ে ট্যাগের মধ্যে পাঠ্য পাঠাতে এই প্রশ্নটি পড়ুন

[\S\s] is the one I used

রেজক্স নতুন লাইন সহ কোনও অক্ষর সাথে মেলে

0
যোগ

Reading the text with in the square brackets [] i.e.[Start] and [End] and validate the array with a list of values. jsfiddle http://jsfiddle.net/muralinarisetty/r4s4wxj4/1/

var mergeFields = ["[sitename]",
                   "[daystoholdquote]",
                   "[expires]",
                   "[firstname]",
                   "[lastname]",
                   "[sitephonenumber]",
                   "[hoh_firstname]",
                   "[hoh_lastname]"];       

var str = "fee [sitename] [firstname] \
sdfasd [lastname] ";
var res = validateMeargeFileds(str);
console.log(res);

function validateMeargeFileds(input) {
    var re = /\[\w+]/ig;
    var isValid;
    var myArray = input.match(re);

    try{
        if (myArray.length > 0) {
            myArray.forEach(function (field) {

                isValid = isMergeField(field);

                if (!isValid){
                   throw e;                        
                }
            });
        }
    }
    catch(e) {        
    }

    return isValid;
}

function isMergeField(mergefield) {
    return mergeFields.indexOf(mergefield.toLowerCase()) > -1;
}
0
যোগ