<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2026 Huawei Device Co., Ltd.
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<phone_number_rule>
    <negative>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <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>
            <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]?</content>
            <content>[0-9]{1,2}\.(?!0)[1-2]?[0-9]{1,2})(?![a-zA-Z0-9_\.])(:[1-9][0-9]{0,4})?(/([a-zA-Z0-9/_\.</content>
            <content>\p{Punct}]*(\?\S+)?)?)?(?![a-zA-Z_0-9])</content>
        </rule>
        <rule>
            <insensitive>True</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>\d{3,17}(g|G|k|kB|KB|GB|kg|千克|毫升|mL|(平|立)方米|(m²)|(m³)|((平方|立方)?分米)|((平方|立方)?厘米)|</content>
            <content>((平方|立方)?毫米)|(千米)|(英尺)|(公里)|(公斤)|楼)(?!\p{Alpha})</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>第\d{3,17}(只|次|页|条|个|句)</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(\d{1,16}\p{Blank}*[\..~~]\p{Blank}*)+\d{1,16}</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4])|(25[0-5]))</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>[a-zA-Z_0-9]{1,20}@[a-zA-Z_0-9]{1,20}\.[A-Za-z]{1,10}</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(代金券|(账|帐)户号?|ID|id|验证码|校验码|动态码|取件码|密码|工号|卡号|票号|单号|订单号?|证号|身份证(号码?)?|学号</content>
            <content>|邮编|序列号|代号|编号|昵称|(账|帐)号名)(是|为|\()?\p{Blank}*[::]?\p{Blank}*[A-Za-z0-9_-]{1,30}</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>((WEIXIN|Weibo|yy|qq)号?|群号|微博号?|微信号?|编(号|码))(是|为)?\p{Blank}*[::]?\p{Blank}*\d{4,17}</content>
        </rule>
        <rule>
            <insensitive>True</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(?&lt;!\d)201[0-9](0?[1-9]|1[0-2])(0?[1-9]|[1-2][0-9]|3[01])(?!\d)</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(\d{1,16}[\*\.]{2,8})+(\d{1,8})?</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>((\d{1,16}(\.)?\d{1,10})(\p{Sc}|印尼盾|美元|亿元|十万元?|百万元?|千万元?|万元|((港|澳|新?台|日)</content>
            <content>(币|元))|人民币|元))|((((港|澳|新?台|日)(币|元))|人民币|\p{Sc}|标价为?|售价为?|价格为?)[::]?</content>
            <content>(\d{1,16}(\.)?\d{1,16}))</content>
        </rule>
        <rule>
            <insensitive>True</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>[A-Za-z]{1,20}(?&lt;!(mobile|phone|tel(ephone(\p{Blank}{1,4}number)?)?))[\d-]{3,11}(?![-\d])</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>\{\d{2,4}\}(\p{Blank})*\d{1,4}</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(?&lt;![-\d])(20|19)[0-9]{2}-?(1[0-2]|0?[1-9])-?([1-2][0-9]|3[01]|0?[1-9])(0?[0-9]|1[0-9]|2</content>
            <content>[0-4])(\p{Blank})*[::](\p{Blank})*([1-5][0-9]|0?[0-9])((\p{Blank})*[::](\p{Blank})*</content>
            <content>([1-5][0-9]|0?[0-9]))?</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>[@#][a-zA-Z_-]{0,20}[0-9]{4,}[a-zA-Z_-]{0,20}</content>
        </rule>
    </negative>
    <positive>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Operator</handle>
            <content>(?&lt;![-\d])100\d{4}(?![\d])</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Blank</handle>
            <content>((?&lt;!([-\d])|(\d\p{Blank}{1,5}))[2-9](\d{2}\p{Blank}+\d{4,5}|\d{3}\p{Blank}+\d{3,4})</content>
            <content>(?!\p{Blank}*\d)|(?&lt;![-\d])[2-9]\d{6,7}(?![\d]))(;\d{1})?</content>
        </rule>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Slant</handle>
            <content>(?&lt;![-\d])\d{5,6}[/|]\d{5,6}(?![-\d])</content>
        </rule>
    </positive>
    <border>
        <rule>
            <insensitive>True</insensitive>
            <type>CONTAIN</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(0{3,}|1{3,}|2{3,}|3{3,}|4{3,}|5{3,}|6{3,}|7{3,}|8{3,}|9{3,}|10{8,})</content>
        </rule>
    </border>
    <codes>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Code</valid>
            <handle>Default</handle>
            <content></content>
        </rule>
    </codes>
    <common_exit>
        <rule>
            <content>False</content>
        </rule>
    </common_exit>
    <find_number>
        <rule>
            <insensitive>False</insensitive>
            <type>ZERO</type>
            <valid>Default</valid>
            <handle>Default</handle>
            <content>(?&lt;![-\d])\d{5,6}[/\|]\d{5,6}(?![-\d])</content>
        </rule>
    </find_number>
</phone_number_rule>