-
Notifications
You must be signed in to change notification settings - Fork 1
/
EMT_Tret_Punctmark.php
72 lines (67 loc) · 2.91 KB
/
EMT_Tret_Punctmark.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
<?php
namespace corpsepk\yii2emt;
/**
* @see EMT_Tret
*/
class EMT_Tret_Punctmark extends \corpsepk\yii2emt\EMT_Tret
{
public $title = "Пунктуация и знаки препинания";
public $rules = array(
'auto_comma' => array(
'description' => 'Расстановка запятых перед а, но',
'pattern' => '/([a-zа-яё])(\s| )(но|а)(\s| )/iu',
'replacement' => '\1,\2\3\4'
),
'punctuation_marks_limit' => array(
'description' => 'Лишние восклицательные, вопросительные знаки и точки',
'pattern' => '/([\!\.\?]){4,}/',
'replacement' => '\1\1\1'
),
'punctuation_marks_base_limit' => array(
'description' => 'Лишние запятые, двоеточия, точки с запятой',
'pattern' => '/([\,]|[\:]|[\;]]){2,}/',
'replacement' => '\1'
),
'hellip' => array(
'description' => 'Замена трех точек на знак многоточия',
'simple_replace'=> true,
'pattern' => '...',
'replacement' => '…'
),
'fix_excl_quest_marks' => array(
'description' => 'Замена восклицательного и вопросительного знаков местами',
'pattern' => '/([a-zа-яё0-9])\!\?(\s|$|\<)/ui',
'replacement' => '\1?!\2'
),
'fix_pmarks' => array(
'description' => 'Замена сдвоенных знаков препинания на одинарные',
'pattern' => array(
'/([^\!\?])\.\./',
'/([a-zа-яё0-9])(\!|\.)(\!|\.|\?)(\s|$|\<)/ui',
'/([a-zа-яё0-9])(\?)(\?)(\s|$|\<)/ui',
),
'replacement' => array(
'\1.',
'\1\2\4',
'\1\2\4'
),
),
'fix_brackets' => array(
'description' => 'Лишние пробелы после открывающей скобочки и перед закрывающей',
'pattern' => array('/(\()(\040|\t)+/', '/(\040|\t)+(\))/'),
'replacement' => array('\1', '\2')
),
'fix_brackets_space' => array(
'description' => 'Пробел перед открывающей скобочкой',
'pattern' => '/([a-zа-яё0-9])(\()/iu',
'replacement' => '\1 \2'
),
'dot_on_end' => array(
'description' => 'Точка в конце текста, если её там нет',
'disabled' => true,
'pattern' => '/([a-zа-яё0-9])(\040|\t|\ \;)*$/ui',
//'pattern' => '/(([^\.\!\?])|(&(ra|ld)quo;))$/',
'replacement' => '\1.'
),
);
}