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    <negative>
17        <rule>
18            <insensitive>True</insensitive>
19            <type>ZERO</type>
20            <valid>Default</valid>
21            <handle>Default</handle>
22            <content>(?&lt;!\p{L})(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|January|February|March|April|May|June|</content>
23            <content>July|August|September|October|November|December)\p{Blank}*(-|\p{Blank})?\p{Blank}*([012]?\d|3[01])</content>
24            <content>\p{Blank}*(-|\p{Blank})?\p{Blank}*(1[4-9]\d{2}|20[01][0-9])(\p{Blank}*)(([01]?\d|2[0-4])\p{Blank}</content>
25            <content>*[.:]\p{Blank}*[0-5]\d(\p{Blank}*[.:]\p{Blank}*[0-5]\d)?)?</content>
26        </rule>
27        <rule>
28            <insensitive>True</insensitive>
29            <type>ZERO</type>
30            <valid>Default</valid>
31            <handle>Default</handle>
32            <content>\d[0-9\p{Blank}.,-]*\d\p{Blank}{0,4}(kilobytes|kilowatt-hours|megabytes|kilojoules|square\p{Blank}+</content>
33            <content>centimetres|gal\p{Blank}+US|kilohertz|byte|calories|milliamperes|MB|m²|MW|hours|gigahertz|kilograms|pints|</content>
34            <content>oz|ha|bit|Tb|pm|years|Mb|bytes|A|hPa|pounds|GB|carats|degrees\p{Blank}+Celsius|J|K|picometres|W|V|secs|</content>
35            <content>deg|mg|dm|dl|decimetres|hectopascals|wks|megawatts|ml|centimetres|kHz|joules|ounces|g|decilitres|mm|Gb|</content>
36            <content>ms|l|mins|m|nmi|millimetres|weeks|yards|kWh|days|seconds|gram|volts|tn|nautical\p{Blank}+miles|kilocalories|</content>
37            <content>kW|Calories|yrs|US\p{Blank}+gallons|cm²|degrees\p{Blank}+Fahrenheit|kg|Ω|amperes|kilometres|kb|milliseconds|</content>
38            <content>tons|kilowatts|gigabytes|hertz|megahertz|mths|watts|kilobits|litres|km|Hz|cm|GHz|gigabits|mA|°|lb|</content>
39            <content>millilitres|Cal|metres|ohms|hectares|milligrams|hrs|kelvin|bits|cal|MHz|TB|megabits|°C|square\p{Blank}+metres|</content>
40            <content>minutes|°Flyd|terabits|kcal|degrees|months|kJ|CD|pt|terabytes|kB)(?!\p{L})</content>
41        </rule>
42        <rule>
43            <insensitive>False</insensitive>
44            <type>ZERO</type>
45            <valid>Default</valid>
46            <handle>Default</handle>
47            <content>\p{Sc}\d+[.]?\d+</content>
48        </rule>
49        <rule>
50            <insensitive>False</insensitive>
51            <type>ZERO</type>
52            <valid>Default</valid>
53            <handle>Default</handle>
54            <content>4x\d0+</content>
55        </rule>
56        <rule>
57            <insensitive>False</insensitive>
58            <type>ZERO</type>
59            <valid>Default</valid>
60            <handle>Default</handle>
61            <content>&amp;amp;#\d{2,5}</content>
62        </rule>
63        <rule>
64            <insensitive>False</insensitive>
65            <type>ZERO</type>
66            <valid>Default</valid>
67            <handle>Default</handle>
68            <content>\d+((th)|%)</content>
69        </rule>
70        <rule>
71            <insensitive>False</insensitive>
72            <type>ZERO</type>
73            <valid>Default</valid>
74            <handle>Default</handle>
75            <content>(?&lt;!(call))[iI]n \d{4}</content>
76        </rule>
77        <rule>
78            <insensitive>False</insensitive>
79            <type>ZERO</type>
80            <valid>Default</valid>
81            <handle>Default</handle>
82            <content>([fF]rom|[uU]ntil) \d{4}</content>
83        </rule>
84        <rule>
85            <insensitive>False</insensitive>
86            <type>ZERO</type>
87            <valid>Default</valid>
88            <handle>Default</handle>
89            <content>\d{4,}[+]</content>
90        </rule>
91        <rule>
92            <insensitive>False</insensitive>
93            <type>ZERO</type>
94            <valid>Default</valid>
95            <handle>Default</handle>
96            <content>20[01]\d\p{Blank}{0,2}-\p{Blank}{0,2}20[01]\d</content>
97        </rule>
98        <rule>
99            <insensitive>False</insensitive>
100            <type>ZERO</type>
101            <valid>Default</valid>
102            <handle>Default</handle>
103            <content>(?&lt;!\d)[1-9][0-9]{0,2}(?:(?:[,\p{Blank}]\d{3})*|\d{0,13})(\.\d{1,3})(?!\d)</content>
104        </rule>
105    </negative>
106    <positive>
107        <rule>
108            <insensitive>False</insensitive>
109            <type>ZERO</type>
110            <valid>Default</valid>
111            <handle>StartWithMobile</handle>
112            <content>([mM]ob(ile)?|[cC]all|landline|fixedline)[:]?\s*+\d{5,}+</content>
113        </rule>
114        <rule>
115            <insensitive>False</insensitive>
116            <type>ZERO</type>
117            <valid>Default</valid>
118            <handle>EndWithMobile</handle>
119            <content>\d{5,}+\s*+[\(]?mob</content>
120        </rule>
121    </positive>
122    <border>
123        <rule>
124            <insensitive>True</insensitive>
125            <type>CONTAIN</type>
126            <valid>Default</valid>
127            <handle>Default</handle>
128            <content>(0{3,}|1{3,}|2{3,}|3{3,}|4{3,}|5{3,}|6{3,}|7{3,}|8{3,}|9{3,})</content>
129        </rule>
130        <rule>
131            <insensitive>True</insensitive>
132            <type>CONTAIN</type>
133            <valid>Default</valid>
134            <handle>Default</handle>
135            <content>[\(\[]?1\d(0\d|1[012])([012]\d|3[01])</content>
136        </rule>
137        <rule>
138            <insensitive>True</insensitive>
139            <type>CONTAIN</type>
140            <valid>Default</valid>
141            <handle>Default</handle>
142            <content>[1-9]0{3,10}</content>
143        </rule>
144    </border>
145    <codes>
146        <rule>
147            <insensitive>False</insensitive>
148            <type>ZERO</type>
149            <valid>Rawstr</valid>
150            <handle>Default</handle>
151            <content></content>
152        </rule>
153        <rule>
154            <insensitive>False</insensitive>
155            <type>ZERO</type>
156            <valid>PreSuf</valid>
157            <handle>Default</handle>
158            <content></content>
159        </rule>
160    </codes>
161    <common_exit>
162        <rule>
163            <content>True</content>
164        </rule>
165    </common_exit>
166</phone_number_rule>