1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) 2023 Huawei Device Co., Ltd.
3     Licensed under the Apache License, Version 2.0 (the "License");
4     you may not use this file except in compliance with the License.
5     You may obtain a copy of the License at
6
7         http://www.apache.org/licenses/LICENSE-2.0
8
9     Unless required by applicable law or agreed to in writing, software
10     distributed under the License is distributed on an "AS IS" BASIS,
11     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12     See the License for the specific language governing permissions and
13     limitations under the License.
14-->
15<phone_number_rule>
16    <common>
17        <rule>
18            <insensitive>False</insensitive>  // 控制是否区分大小写
19            <type>ZERO</type>
20            <valid>Default</valid>  // 控制有效性规则校验类型
21            <handle>Default</handle>
22            <content>[@#][a-zA-Z_0-9-]{0,20}[0-9]{3,}[a-zA-Z_0-9-]{0,20}</content>
23        </rule>
24        <rule>
25            <insensitive>False</insensitive>
26            <type>ZERO</type>
27            <valid>Default</valid>
28            <handle>Default</handle>
29            <content>(?&lt;!\d)(?:[012]?\d|3[01])\p{Blank}{0,2}(\.|-|\/)\p{Blank}{0,2}(0?[1-9]|1[0-2])</content>
30            <content>\p{Blank}{0,2}\1\p{Blank}{0,2}(20[01][0-9]|19\d{2})(?!\d)</content>
31        </rule>
32        <rule>
33            <insensitive>False</insensitive>
34            <type>ZERO</type>
35            <valid>Default</valid>
36            <handle>Default</handle>
37            <content>(?&lt;!\d)(?:(?:0?[1-9]|[1,2]\d|3[01])\p{Blank}{0,2}(\.|\s|-|\/)\p{Blank}{0,2}(?:0?[1-9]|[1-2]\d|3[01])</content>
38            <content>(?:\p{Blank}{0,2}\1\p{Blank}{0,2}(?:20[01][1-9]|19\d{2}))?|(?:20[01][0-9]|19\d{2}\p{Blank}{0,2})</content>
39            <content>(\.|\s|-|\/)\p{Blank}{0,2}(?:0?[1-9]|[1-2]\d|3[01])\p{Blank}{0,2}\2\p{Blank}{0,2}(?:0?[1-9]|[1-2]\d|3[01])</content>
40            <content>\p{Blank}{0,2})\p{Blank}{0,2},?\p{Blank}{0,2}(?:[01]?\d|2[0-4])\p{Blank}{0,2}:\p{Blank}{0,2}[0-5]</content>
41            <content>\d(?:\p{Blank}{0,2}:\p{Blank}:\p{Blank}{0,2}[0-5]\d)?(?!(\d|\.\d))</content>
42        </rule>
43        <rule>
44            <insensitive>False</insensitive>
45            <type>ZERO</type>
46            <valid>Default</valid>
47            <handle>Default</handle>
48            <content>(?&lt;!\d)(?:[01]?\d|2[0-4])\p{Blank}{0,2}:\p{Blank}{0,2}[0-5]\d(?:\p{Blank}{0,2}:\p{Blank}{0,2}[0-5]\d)?</content>
49            <content>\p{Blank}{0,2}(?:(?:0?[1-9]|[1-2]\d|3[01])\p{Blank}{0,2}(\.|\s|-|\/)\p{Blank}{0,2}(?:0?[1-9]|[1-2]\d|3[01])</content>
50            <content>(?:\p{Blank}{0,2}(?:20[01][0-9]|19\d{2}))?|(?:20[01][0-9]|19\d{2})\p{Blank}{0,2}(\.|\s|-|\/)\p{Blank}{0,2}</content>
51            <content>(?:0?[1-9]|[1-5]\d)\p{Blank}{0,2}\3\p{Blank}{0,2}(?:0?[1-9]|[1-5]\d)\p{Blank}{0,2})(?!(\d|\.\d))</content>
52        </rule>
53        <rule>
54            <insensitive>False</insensitive>
55            <type>ZERO</type>
56            <valid>Default</valid>
57            <handle>Default</handle>
58            <content>(?&lt;![\d:.])(?:[01]?\d|2[0-4])([.:])[0-5]\d(?:\1[0-5]\d)?\p{Blank}{0,2}-\p{Blank}{0,2}</content>
59            <content>(?:[01]?\d|2[0-4])\1[0-5]\d(?:\1[0-5]\d)?(?!(\d|[.]\d))</content>
60        </rule>
61        <rule>
62            <insensitive>False</insensitive>
63            <type>ZERO</type>
64            <valid>Default</valid>
65            <handle>Default</handle>
66            <content>[a-zA-Z_0-9]{1,20}@[a-zA-Z_0-9]{1,20}\.[a-zA-Z]{1,10}</content>
67        </rule>
68        <rule>
69            <insensitive>False</insensitive>
70            <type>ZERO</type>
71            <valid>Default</valid>
72            <handle>Default</handle>
73            <content>[0-9]+\p{Blank}{0,2}([Xx*/+-])\p{Blank}{0,2}[0-9]+(\p{Blank}{0,2}([Xx*/+-])\p{Blank}</content>
74            <content>{0,2}[0-9]+)*\p{Blank}{0,2}=\p{Blank}{0,2}[0-9]+</content>
75        </rule>
76        <rule>
77            <insensitive>False</insensitive>
78            <type>ZERO</type>
79            <valid>Default</valid>
80            <handle>Default</handle>
81            <content>(?&lt;![\d:.])(?:[01]?\d|2[0-4])(:)[0-5]\d(?:\1[0-5]\d)?</content>
82        </rule>
83        <rule>
84            <insensitive>False</insensitive>
85            <type>ZERO</type>
86            <valid>Default</valid>
87            <handle>Default</handle>
88            <content>(?&lt;![a-zA-Z_0-9.@])((https?|ftp)://)?([a-zA-Z_0-9][a-zA-Z0-9_-]*(\.[a-zA-Z0-9_-]{1,20})*</content>
89            <content>\.(org|com|edu|net|[a-z]{2})|(?!0)[1-2]?[0-9]{1,2}\.(?!0)[1-2]?[0-9]{1,2}\.(?!0)[1-2]?[0-9]{1,2}\.(?!0)[1-2]?[0-9]</content>
90            <content>{1,2})(?![a-zA-Z0-9_.])(:[1-9][0-9]{0,4})?(/([a-zA-Z0-9/_.\p{Punct}]*(\?\S+)?)?)?(?![a-zA-Z_0-9])</content>
91        </rule>
92        <rule>
93            <insensitive>False</insensitive>
94            <type>ZERO</type>
95            <valid>Default</valid>
96            <handle>Default</handle>
97            <content>(;ext=)\d*(?!\d)</content>
98        </rule>
99    </common>
100    <find_number>
101        <rule>
102            <insensitive>False</insensitive>
103            <type>ZERO</type>
104            <valid>Default</valid>
105            <handle>Default</handle>
106            <content>[\+\(\d][\d\p{Blank}\(\)\./-]{3,}[\d]</content>
107        </rule>
108        <rule>
109            <insensitive>False</insensitive>
110            <type>ZERO</type>
111            <valid>Default</valid>
112            <handle>Default</handle>
113            <content>(?&lt;!(\d|\*|-))\d{2,6}(?!(\d|\*|-|%|分钟|版本))</content>
114        </rule>
115    </find_number>
116</phone_number_rule>