如何从我的文本中清除(删除)连字符?

How to clear(delete) hyphenation from my text?

我的书中有一个带连字符的单词,我必须删除那个连字符并连接单词。但是我们有一个带有符号“-”的单词。在这种情况下如何删除连字符?

我书中的示例文本:

$text = "
БАДРЎ(Й) (ي(بدرو он ки рўи нозебу хунук до-
рад, бадафт, безеб, бадбашара; муќоб.
хушрўй. БАДСОБИЌА بدسابقه он ки пешинаи хуб надо-
рад ва мардум ўро ба бадї мешиносанд. БАДСУРАТ بدصورت бадшакл, бадафт, бад-
андом; нозеб, зиштрўй. БАЙ-БАЙ بي بي нидо вањ-вањ, њай-њай (бо ало-
мати тањсин ва тааљљуб). БЕСАРУНЎГЇ بيسرونوگي 1. бесарунўг будан,
бетартибї, бесарусомонї. 2. чигилї, печи-
дагї, дарњам-барњамї. а) бесаранљом, парешонњол; б) бетартиб,
дарњаму барњам: бесару сомон шудани кор;
бесару тан белибос; луч, урён, барањна; бе-
сар-бесар гаштан худсарона овора гаштан.
";

我试过了:

$search = array("-", "- ", " -", " - ");
$replace = array("", "", "", "");
$result = str_replace($search, $replace, $text);

输出:

БАДРЎ(Й) (ي(بدرو он ки рўи нозебу хунук до рад, бадафт, безеб, бадбашара; муќоб. хушрўй. 
БАДСОБИЌА بدسابقه он ки пешинаи хуб надо рад ва мардум ўро ба бадї мешиносанд.
БАДСУРАТ بدصورت бадшакл, бадафт, бад андом; нозеб, зиштрўй. 
БАЙБАЙ بي بي нидо вањвањ, њайњай (бо ало мати тањсин ва тааљљуб). 
БЕСАРУНЎГЇ بيسرونوگي 1. бесарунўг будан, бетартибї, бесарусомонї. 2. чигилї, печи дагї, дарњамбарњамї. а) бесаранљом, парешонњол; б) бетартиб, дарњаму барњам: бесару сомон шудани кор; бесару тан белибос; луч, урён, барањна; бе сарбесар гаштан худсарона овора гаштан.

想要的结果应该是这样的:

БАДРЎ(Й) (ي(بدرو он ки рўи нозебу хунук дорад, 
бадафт, безеб, бадбашара; муќоб.
хушрўй. БАДСОБИЌА بدسابقه он ки пешинаи хуб надорад 
ва мардум ўро ба бадї мешиносанд. БАДСУРАТ بدصورت бадшакл, бадафт, 
бадандом; нозеб, зиштрўй. БАЙ-БАЙ بي بي нидо вањ-вањ, њай-њай (бо 
аломати тањсин ва тааљљуб). БЕСАРУНЎГЇ بيسرونوگي 1. бесарунўг будан,
бетартибї, бесарусомонї. 2. чигилї, печидагї, дарњам-барњамї. 
а) бесаранљом, парешонњол; б) бетартиб,
дарњаму барњам: бесару сомон шудани кор;
бесару тан белибос; луч, урён, барањна; 
бесар-бесар гаштан худсарона овора гаштан.

我假设:如果单词以您想撤消的方式连字符,它将位于行尾。

您可以使用 preg_replace() 来做到这一点:

$search = "/-\n/";
$replace = "";
preg_replace($search, $replace, $text);

这将搜索任何“-”后跟换行符的地方(如果这来自基于 Windows 的系统,您可能需要替换“\r\n”只是“\n”),并将其替换为空字符串,从而删除连字符 换行符。

请注意,$search 需要用双引号引起来才能正确解析“\n”。

这与您要找的很接近:

<?php

$string = "БАДРЎ(Й) (ي(بدرو он ки рўи нозебу хунук до-
рад, бадафт, безеб, бадбашара; муќоб.
хушрўй. БАДСОБИЌА بدسابقه он ки пешинаи хуб надо-
рад ва мардум ўро ба бадї мешиносанд. БАДСУРАТ بدصورت бадшакл, бадафт, бад-
андом; нозеб, зиштрўй. БАЙ-БАЙ بي بي нидо вањ-вањ, њай-њай (бо ало-
мати тањсин ва тааљљуб). БЕСАРУНЎГЇ بيسرونوگي 1. бесарунўг будан,
бетартибї, бесарусомонї. 2. чигилї, печи-
дагї, дарњам-барњамї. а) бесаранљом, парешонњол; б) бетартиб,
дарњаму барњам: бесару сомон шудани кор;
бесару тан белибос; луч, урён, барањна; бе-
сар-бесар гаштан худсарона овора гаштан.";

$pattern = '/(\w+)-(\s+)(\w+)/u';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);

?>

示例输出:

БАДРЎ(Й) (ي(بدرو он ки рўи нозебу хунук 
дорад, бадафт, безеб, бадбашара; муќоб.
хушрўй. БАДСОБИЌА بدسابقه он ки пешинаи хуб 
надорад ва мардум ўро ба бадї мешиносанд. БАДСУРАТ بدصورت бадшакл, бадафт, 
бадандом; нозеб, зиштрўй. БАЙ-БАЙ بي بي нидо вањ-вањ, њай-њай (бо 
аломати тањсин ва тааљљуб). БЕСАРУНЎГЇ بيسرونوگي 1. бесарунўг будан,
бетартибї, бесарусомонї. 2. чигилї, 
печидагї, дарњам-барњамї. а) бесаранљом, парешонњол; б) бетартиб,
дарњаму барњам: бесару сомон шудани кор;
бесару тан белибос; луч, урён, барањна; 
бесар-бесар гаштан худсарона овора гаштан.

您可能正在寻找

-\R

这需要替换为 '',请参阅 a demo on regex101.com


PHP:

$regex = '~-\R~';
$new_text = preg_replace($regex, '', $text);

a demo on ideone.com