হাইফেনেশন সরান


15

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

ভাগ্যক্রমে, যদি আমরা সেখানে অগণিত স্ব-সহায়ক বইগুলিকে বিশ্বাস করি তবে আপনি এটিকে চ্যালেঞ্জ হিসাবে দেখলে কোনও সমস্যা হয় না। আমি বিশ্বাস করি যে এই স্ব-সহায়ক বইগুলি পিপিসিজি উল্লেখ ব্যতীত, যেখানে কোনও চ্যালেঞ্জ হিসাবে উপস্থাপন করা হলে যে কোনও সমস্যার সমাধান হবে। আপনার কাজটি কোনও পাঠ্য থেকে আপত্তিকর হাইফেনেশন এবং লাইনব্রেকগুলি সরিয়ে ফেলা হয়, যাতে এটি কোনও পাঠ্য সম্পাদককে আটকানোর জন্য প্রস্তুত।

সমস্যার বিবরণ

আপনি এমন একটি প্রোগ্রাম বা ফাংশন লিখবেন যা প্রযোজ্য যেখানে হাইফেনেশন এবং লাইন-ব্রেকগুলি সরিয়ে দেয়। ইনপুট উপর একটি স্ট্রিং হতে হবে stdin(অথবা নিকটতম বিকল্প) অথবা একটি ফাংশন ইনপুট হিসাবে। আউটপুট (চালু stdoutবা নিকটতম বিকল্প বা ফাংশন আউটপুট) 'সংশোধন' পাঠ্য বার্তা পাঠাতে পারবেন। এই পাঠ্যটি সরাসরি অনুলিপিযোগ্য হতে হবে । এর অর্থ হ'ল নেতৃত্বাধীন বা পিছনের আউটপুটটি ঠিক আছে, তবে আপনার সংশোধন করা পাঠ্যের আধ ভাগ অতিরিক্ত আউটপুট (যেমন, প্রতিটি লাইনে শীর্ষস্থানীয় স্থান) নয়

সর্বাধিক প্রাথমিক কেসটি হ'ল (দ্রষ্টব্য: পিছনে স্থান নেই)

Lorem ipsum dolor sit amet, con-
sectetur adipiscing elit. Morbi
lacinia nisi sed mauris rhoncus.

আপত্তিজনক হাইফেন এবং লাইনব্রেকগুলি সরিয়ে ফেলা উচিত, তা পাওয়ার জন্য

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacinia nisi sed mauris rhoncus.

তবে কয়েকটি ব্যতিক্রম লক্ষ্য করা উচিত।

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

একটি উদাহরণ: (এই উদাহরণে প্রকাশিত মতামতগুলি কল্পিত এবং এটি অবশ্যই লেখকের মতামতকে উপস্থাপন করে না; রানজে-কট্টা-ফেহলবার্গ পদ্ধতির বিরোধীরা এই চ্যালেঞ্জে অংশ নিতে সমানভাবে স্বাগত)

Differential equations can
be solved with the Runge-Kutta-
Fehlberg method.

Developed in the nineteenth-
 or twentieth century, this
method is completely FANTAS-
TIC.

হয়ে যাবে

Differential equations can be solved with the Runge-Kutta-Fehlberg method. 

Developed in the nineteenth- or twentieth century, this method is completely FANTASTIC. 

লাইনব্রেকগুলি আপনার পছন্দ অনুসারে হয় \nবা \r\nASCII কোড-পয়েন্ট হতে পারে এবং হাইফেনটি একটি সাধারণ ASCII -(বিয়োগ চিহ্ন)। ইউটিএফ -8 সমর্থন প্রয়োজন হয় না। এই চ্যালেঞ্জটি , তাই সংক্ষিপ্ততম কোড জিততে পারে।

উত্তর:


9

রেটিনা , 58 বাইট

(?<!\n)\n(?!\n)
<space>
- (?! |[A-Z][a-z])| (?= )|(?<=-) (?=[A-Z])
<empty>

<space>নিজস্ব লাইনে একটি একক স্থান <empty>উপস্থাপন করে এবং একটি খালি ট্রেলিং লাইন উপস্থাপন করে। গণনা উদ্দেশ্যে, প্রতিটি লাইন একটি পৃথক ফাইলে যায় এবং \nপ্রকৃত লাইনফিড অক্ষর দ্বারা প্রতিস্থাপিত হয়। সুবিধার্থে আপনি উপরের সমস্তটি একটি একটি ফাইলে রেখে দিতে পারেন এবং এটি -sপতাকা সহ চালাতে পারেন ।

আমি নিশ্চিত যে এটি করার একটি আরও ছোট উপায় আছে, সুতরাং আমি গল্ফিং না করা পর্যন্ত আমি একটি ব্যাখ্যা দিয়ে অপেক্ষা করব।


আমি আসলে এটি
রেটিনার

2

জিএনইউ শেড, 68

স্কোরটিতে -zrপাস করা বিকল্পগুলির জন্য +2 অন্তর্ভুক্ত sed

s/\n\n/:/g
s/-\n([A-Z][a-z])/-\1/g
s/-\n /- /g
s/-\n//g
y/\n:/ \n/

ধরে নিই যে ইনপুট স্ট্রিমটিতে কোনও :অক্ষর নেই। যদি এটি গ্রহণযোগ্য না হয়, তবে :কোডের সমস্ত কিছু অন্য প্রিন্টযোগ্য ASCII অক্ষর, যেমন 0x7 বিইএল দ্বারা প্রতিস্থাপিত হতে পারে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.