-
Notifications
You must be signed in to change notification settings - Fork 1
/
EMT_Tret_Dash.php
75 lines (68 loc) · 3.74 KB
/
EMT_Tret_Dash.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
namespace corpsepk\yii2emt;
/**
* @see EMT_Tret
*/
class EMT_Tret_Dash extends \corpsepk\yii2emt\EMT_Tret
{
public $title = "Дефисы и тире";
public $rules = array(
'mdash_symbol_to_html_mdash' => array(
'description' => 'Замена символа тире на html конструкцию',
'pattern' => '/—/iu',
'replacement' => '—'
),
'mdash' => array(
'description' => 'Тире после кавычек, скобочек, пунктуации',
'pattern' => array(
'/([a-zа-яё0-9]+|\,|\:|\)|\&(ra|ld)quo\;|\|\"|\>)(\040|\t)(—|\-|\&mdash\;)(\s|$|\<)/ui',
'/(\,|\:|\)|\")(—|\-|\&mdash\;)(\s|$|\<)/ui',
),
'replacement' => array(
'\1 —\5',
'\1 —\3',
),
),
'mdash_2' => array(
'description' => 'Тире после переноса строки',
'pattern' => '/(\n|\r|^|\>)(\-|\&mdash\;)(\t|\040)/',
'replacement' => '\1— '
),
'mdash_3' => array(
'description' => 'Тире после знаков восклицания, троеточия и прочее',
'pattern' => '/(\.|\!|\?|\&hellip\;)(\040|\t|\ \;)(\-|\&mdash\;)(\040|\t|\ \;)/',
'replacement' => '\1 — '
),
'iz_za_pod' => array(
'description' => 'Расстановка дефисов между из-за, из-под',
'pattern' => '/(\s|\ \;|\>|^)(из)(\040|\t|\ \;)\-?(за|под)([\.\,\!\?\:\;]|\040|\ \;)/uie',
'replacement' => '($m[1] == " " ? " " : $m[1]) . $m[2]."-".$m[4] . ($m[5] == " "? " " : $m[5])'
),
'to_libo_nibud' => array(
'description' => 'Автоматическая простановка дефисов в обезличенных местоимениях и междометиях',
'cycled' => true,
'pattern' => '/(\s|^|\ \;|\>)(кто|кем|когда|зачем|почему|как|что|чем|где|чего|кого)\-?(\040|\t|\ \;)\-?(то|либо|нибудь)([\.\,\!\?\;]|\040|\ \;|$)/uie',
'replacement' => '($m[1] == " " ? " " : $m[1]) . $m[2]."-".$m[4] . ($m[5] == " "? " " : $m[5])'
),
'koe_kak' => array(
'description' => 'Кое-как, кой-кого, все-таки',
'cycled' => true,
'pattern' => array(
'/(\s|^|\ \;|\>)(кое)\-?(\040|\t|\ \;)\-?(как)([\.\,\!\?\;]|\040|\ \;|$)/uie',
'/(\s|^|\ \;|\>)(кой)\-?(\040|\t|\ \;)\-?(кого)([\.\,\!\?\;]|\040|\ \;|$)/uie',
'/(\s|^|\ \;|\>)(вс[её])\-?(\040|\t|\ \;)\-?(таки)([\.\,\!\?\;]|\040|\ \;|$)/uie',
),
'replacement' => '($m[1] == " " ? " " : $m[1]) . $m[2]."-".$m[4] . ($m[5] == " "? " " : $m[5])'
),
'ka_de_kas' => array(
'description' => 'Расстановка дефисов с частицами ка, де, кась',
'disabled' => true,
'pattern' => array(
'/(\s|^|\ \;|\>)([а-яё]+)(\040|\t|\ \;)(ка)([\.\,\!\?\;]|\040|\ \;|$)/uie',
'/(\s|^|\ \;|\>)([а-яё]+)(\040|\t|\ \;)(де)([\.\,\!\?\;]|\040|\ \;|$)/uie',
'/(\s|^|\ \;|\>)([а-яё]+)(\040|\t|\ \;)(кась)([\.\,\!\?\;]|\040|\ \;|$)/uie',
),
'replacement' => '($m[1] == " " ? " " : $m[1]) . $m[2]."-".$m[4] . ($m[5] == " "? " " : $m[5])'
),
);
}