-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReplaceStr_Part11_res549.txt
251 lines (224 loc) · 7.58 KB
/
ReplaceStr_Part11_res549.txt
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
######################################################################
<rx>(?>\G[\s ]*+(?:(?>[\,&と,、]|&)[\s ]*+)?+\K|(?<![!-~&&[^"()<>]]|>|[クモサ][ハロシヤネ]))(?>(?=[1-9]9\d(?!\d))(?<A9C>)(?&AB)\d|(?=[1-9][0-8]\d(?!\d))(?<A>[1-9])(?&B)\d|(?=[1-9]\d(?!\d))(?&B)\d)(?>(?!\-)|\-(?(<A9C>)(?&DEF9)|(?&DEF)))(?![\d\-\.\::~%‰$㌦㌧㌔㍑㌢㎝㍉㎜㎡]|[兆億万千百十円銭人歳名余食歩皿箱社席隻件棟軒戸坪室部店脚基株斤局畳票膳俵手足巻周県州]|[系形型番編連両号発着時分秒年月日代回階倍本枚個冊度通匹頭体柱種組杯条粒丁機球打振勝負]|(?>[kmn][mgl]|c[cm]|[mgtvwh]|[kmgt]b|mph|feet|metre|k(?>not|[ntw])|mi(?:le)?+|bit|byte|hP?+a|times|days)(?!(?a:[[:alpha:]]))|(?>[kmn][mgl]|c[cm]|[mgtvwh]|[kmgt]b|mph|feet|metre|k(?>not|[ntw])|mi(?:le)?+|bit|byte|hP?+a|times|days)(?![A-Za-z])|ミリ|センチ|キロ|メートル|ヤード|フィート|マイル|ノット|海里|光年|ナノ|デシ|リットル|グラム|トン|ワット|ボルト|[メギ]ガ|テラ|ビット|バイト|パー(?>ミル|セント)|平[方米]|立方|ヘクト|ドル|ユーロ|ポンド|スレ|レス|世紀|ケース|ポイント|パケット|車体|数(?![字学式列])|羽(?![毛田根生化鳥])|[かカヵヶ箇][月年所国]|\s*+</a>)(?!(?!)tonco(?<AB>(?>(?<AB1>19)|(?<AB2>29)|(?<AB3>39)|(?<AB4>49)|(?<AB5>59)|(?<AB6>69)|(?<AB7>79)|(?<AB8>89)|(?<AB9>99)))(?<B>(?>(?<B0>0)|(?<B1>1)|(?<B2>2)|(?<B3>3)|(?<B4>4)|(?<B5>5)|(?<B6>6)|(?<B7>7)|(?<B8>8)|(?<B9>9)))(?<DEF9>(?>(?(<AB1>)(?>19|20)|(?(<AB2>)(?>29|30)|(?(<AB3>)(?>39|40)|(?(<AB4>)(?>49|50)|(?(<AB5>)(?>59|60)|(?(<AB6>)(?>69|70)|(?(<AB7>)(?>79|80)|(?(<AB8>)(?>89|90)|(?(<AB9>)(?>99|100)|(?!))))))))))\d))(?<DEF>(?>(?(<A>)\k<A>)(?(<B0>)[01]|(?(<B1>)[12]|(?(<B2>)[23]|(?(<B3>)[34]|(?(<B4>)[45]|(?(<B5>)[56]|(?(<B6>)[67]|(?(<B7>)[78]|(?(<B8>)[89]|(?(<B9>)(?>9|10)|(?!)))))))))))\d))) >>$& msg <0>/rail/1535373886/
######################################################################
# 2018/11/08 更新 (2018/11/04 公開)
#
# [ 掲示板に書かれた数字をレスアンカー化する正規表現 ]
#
# 例えば書き込みに 123-124 という文字列を見つけると >>123-124 の形にします
# この場合、前半の数字をABC、後半の数字をDEFとして扱っています
#
# アンカー化は 123-124 の形だけでなく 345 のような数字単体の場合も行われます
# そのためアンカー化するべきでないものもアンカー化することがあります
# このような誤爆を避けるための部分をカスタマイズすることで誤爆を調整できます
#
# この正規表現はURLに /rail/1535373886/ を含むスレのみで動作します
# これを変えたい場合は <0>/rail/1535373886/ のところを調整してください
#
# 依頼元: ReplaceStr.txtを活用するスレ Part11 no.549
# http://jane2ch.net/test/read.cgi/community/1466648977/549-
#
#
# この正規表現は bregonig.dll Ver.4.12 以降を使うことを前提としています
# 動かない場合はバージョンが古くないか確認して下さい
#
#
### 素晴らしい正規表現ライブラリを公開されているお二人に感謝~ ###
#
# bregonig.dll、Onigmo : k-takata氏
# https://github.com/k-takata/
# http://k-takata.o.oo7.jp/
# https://twitter.com/k_takata
#
# oniguruma : K.Kosako氏
# https://github.com/kkos/oniguruma
######################################################################
(?>
## 前回マッチした位置から
\G
[\s ]*+
(?:
(?>
[\,&と,、]
|
&
)
[\s ]*+
)?+
\K
|
## 数字の前に↓があったらアンカーにしない
(?<!
## URL文字。\d \- \. \, \: > も一緒に弾かれる
[!-~&&[^"()<>]]
|
>
|
## 鉄道の車両用語
[クモサ][ハロシヤネ]
)
)
##ここから1つ目のレス番号
(?>
## 3ケタの数字 (十の位が9)
(?=[1-9]9\d(?!\d))
## 十の位が9というフラグを立てる
(?<A9C>)
## 百と十の位AB
(?&AB)
## 一の位C
\d
|
## 3ケタの数字 (十の位が9以外)
(?=[1-9][0-8]\d(?!\d))
## 百の位A
(?<A>[1-9])
## 十の位B
(?&B)
## 一の位C
\d
|
## 2ケタの数字
## 十の位B
(?=[1-9]\d(?!\d))
(?&B)
## 一の位C
\d
##※ 1ケタの数字には対応していません
)
##ここから2つ目のレス番号
(?>
(?!\-)
|
\-
## ABCが3ケタで十の位が9の数字だったかどうかで分岐
(?(<A9C>)
(?&DEF9)
|
(?&DEF)
)
)
##レス番号の後ろに↓があったら弾く
(?!
[\d\-\.\::~%‰$㌦㌧㌔㍑㌢㎝㍉㎜㎡]
|
[兆億万千百十円銭人歳名余食歩皿箱社席隻件棟軒戸坪室部店脚基株斤局畳票膳俵手足巻周県州]
|
[系形型番編連両号発着時分秒年月日代回階倍本枚個冊度通匹頭体柱種組杯条粒丁機球打振勝負]
|
## kg,km,cm,mm,m,t(トン),v(ボルト),w(ワット),MB,KB,GB
(?>
[kmn][mgl]|c[cm]|[mgtvwh]|[kmgt]b|mph|feet|metre|k(?>not|[ntw])|mi(?:le)?+
|bit|byte|hP?+a|times|days
)
(?!
(?a:[[:alpha:]])
)
|
(?>
[kmn][mgl]|c[cm]|[mgtvwh]|[kmgt]b|mph|feet|metre
|k(?>not|[ntw])|mi(?:le)?+|bit|byte|hP?+a|times|days
)
(?!
## [\x{8260}-\x{8279}\x{8281}-\x{829a}]
[A-Za-z]
)
|
ミリ|センチ|キロ|メートル|ヤード|フィート|マイル|ノット|海里|光年|ナノ|デシ|リットル|グラム
|トン|ワット|ボルト|[メギ]ガ|テラ|ビット|バイト|パー(?>ミル|セント)|平[方米]|立方|ヘクト
|ドル|ユーロ|ポンド|スレ|レス|世紀|ケース|ポイント|パケット|車体
|数(?![字学式列])|羽(?![毛田根生化鳥])|[かカヵヶ箇][月年所国]
|
\s*+</a>
)
################## 定義ここから #################
(?!(?!)tonco
##百の位と十の位が [1-9]9 のときマッチ
(?<AB>
(?>
(?<AB1>19)
| (?<AB2>29)
| (?<AB3>39)
| (?<AB4>49)
| (?<AB5>59)
| (?<AB6>69)
| (?<AB7>79)
| (?<AB8>89)
| (?<AB9>99)
)
)
##十の位
(?<B>
(?>
(?<B0>0)
|(?<B1>1)
|(?<B2>2)
|(?<B3>3)
|(?<B4>4)
|(?<B5>5)
|(?<B6>6)
|(?<B7>7)
|(?<B8>8)
|(?<B9>9)
)
)
##2つ目のレス番号(A9Cフラグが立っているとき)
(?<DEF9>
(?>
(?(<AB1>)(?>19|20)|
(?(<AB2>)(?>29|30)|
(?(<AB3>)(?>39|40)|
(?(<AB4>)(?>49|50)|
(?(<AB5>)(?>59|60)|
(?(<AB6>)(?>69|70)|
(?(<AB7>)(?>79|80)|
(?(<AB8>)(?>89|90)|
(?(<AB9>)(?>99|100)
| (?!)
)
)
)
)
)
)
)
)
)
## 3ケタ目F
\d
)
)
##2つ目のレス番号(A9Cフラグが無いとき)
(?<DEF>
(?>
## ABCが3ケタだったらAと同じ数字にマッチ、2ケタなら空文字にマッチ
(?(<A>)\k<A>)
(?(<B0>)[01]|
(?(<B1>)[12]|
(?(<B2>)[23]|
(?(<B3>)[34]|
(?(<B4>)[45]|
(?(<B5>)[56]|
(?(<B6>)[67]|
(?(<B7>)[78]|
(?(<B8>)[89]|
(?(<B9>)
(?>9|10)
| (?!)
)
)
)
)
)
)
)
)
)
)
## 3ケタ目F
\d
)
)
## tonco END
)
######################################################################