正则表达式只接受数字,超量,加号和空格

时间:2018-01-13 17:23:03

标签: c# regex

我需要创建一个只接受数字,超量(-),加号(+),空格以及圆括号( )的正则表达式。< / p>

我尝试了正则表达式(?\+?\d+)?[-.\s]?\d+[-.\s]?\d+

需要的是(123) 123-123-123(+91) 123-123-12341234567890,或123 123 1234+92 345 345 3456+92 123-123-1234

1 个答案:

答案 0 :(得分:0)

你的正则表达式以import boto3 glue_client = boto3.client('glue', region_name='us-east-1') glue_client.start_crawler(Name='name_of_crawler') 开头,这是不正确的。也许你正在寻找(?:\+?\d+)?[-.\s]?\d+[-.\s]?\d+,这使第一组无法捕捉。

如果你只想匹配数字,连字符( - ),加号(+),空格和圆括号()一次或多次(所以(?\+?\d+)?也匹配)你可以使用:

^[-+\d() ]+$

如果你想缩小你提供的字符串的匹配范围,这可能是一个选择。

共有两部分:

  1. 开头++++(123)(+91)
  2. 的可选部分
  3. 一个空格,后跟一个带有连字符或+92的{​​{1}}格式123-123-123
  4. ^(?:\+\d+|\(\+?\d+\))?(?:\d{10}| ?\d{3}([ -])\d{3}\1\d{3,4})$

    <强>解释

    • 从字符串123 123 1234
    • 的开头
    • 非捕获组^
    • 哪个匹配加号和一个或多个数字(?:
    • \+\d+
    • 将括号与可选的加号,一个或多个数字和括号|
    • 匹配
    • 关闭非捕获组并将其设为可选\(\+?\d+\)
    • 非捕获组)?
    • 哪个匹配10个数字(?:
    • \d+{10}
    • 可选的空白和数字模式|,它使用捕获组?\d{3}([ -])\d{3}\1\d{3,4}作为空格或连字符。
    • 关闭非捕获组\1
    • 字符串)
    • 的结尾