Java 用于过滤联系人号码的正则表达式
我有一个电话号码列表,但我想根据某些条件删除其中一些号码。我正在尝试设置ETL 假设这是联系电话的列表:Java 用于过滤联系人号码的正则表达式,java,regex,Java,Regex,我有一个电话号码列表,但我想根据某些条件删除其中一些号码。我正在尝试设置ETL 假设这是联系电话的列表: 897-54-6212 985566655 568-00-9977 000-56-8795 875-95-9999 &^*-(&-#$@) 111-85-4568 222-56-6542 333-56-4589 444-48-8978 555-48-8978 666-58-5648 777-58-5647 888-86-8978 456-33-5685 485-44-4568
897-54-6212
985566655
568-00-9977
000-56-8795
875-95-9999
&^*-(&-#$@)
111-85-4568
222-56-6542
333-56-4589
444-48-8978
555-48-8978
666-58-5648
777-58-5647
888-86-8978
456-33-5685
485-44-4568
465-55-8523
485-66-7824
468-77-5948
854-88-2358
785-78-1111
588-64-2222
078-05-1120
455-56-(0000)
我不想看到这样的数字,如果它包含:
@!#$%^()
985566655
568-00-9977
000-56-8795
&^*-(&-#$@)
666-58-5648
455-56-(0000)
有人能帮忙吗?使用只指定数字和破折号的正则表达式可以排除特殊字符:
^\d{3}-\d{2}-\d{4}$
如果您在黑名单中添加负面lookbehinds,则会显示如下:
^\d{3}(?<!000|666|999|900)-\d{2}(?<!00)-\d{4}$
使用只指定数字和破折号的正则表达式可以排除特殊字符:
^\d{3}-\d{2}-\d{4}$
如果您在黑名单中添加负面lookbehinds,则会显示如下:
^\d{3}(?<!000|666|999|900)-\d{2}(?<!00)-\d{4}$
要清楚的是,你能指出列表中哪些数字是无效的吗?什么regex风格?@4castle,dwag…问题更新了。你用的是什么风格的regex?这是在哪种编程语言中使用的?不同的引擎有不同的功能。我一直将此页面标记为书签,以帮助w/regex:说清楚,你能指出列表中哪些数字无效吗?什么regex风格?@4castle,dwag…问题已更新。你使用的是什么风格的regex?这是在哪种编程语言中使用的?不同的引擎有不同的功能。我一直将此页面标记为书签,以帮助w/regex:@4castle…这里是什么?在Java中,您必须以字符串文本形式转义反斜杠。您必须在正则表达式中的所有反斜杠中添加一个额外的反斜杠<代码>\d在正则表达式中表示“数字”。作为字符串文字,它变成了
\\d
@Kate我添加了一段代码来演示如何使用它。@4castle…我是否可以添加一些东西来定义第一个条件下的范围…这样900到999之间的数字也可能被拒绝?这其实很简单。只需将黑名单9
作为第一个字符。第一个否定的lookhehind将变成:(?@4castle…这里是什么?在Java中,您必须以字符串文本形式转义反斜杠。您必须向正则表达式中的所有反斜杠添加一个额外的反斜杠。\d
表示“数字”在正则表达式中。作为字符串文字,它变成了\\d
@Kate。我添加了一段代码来演示如何使用它。@4castle…我是否可以添加一些东西来定义第一个条件下的范围…这样900到999之间的数字也可能被拒绝?这其实很简单。只需将9
作为第一个字符列入黑名单即可。第一个否定的lookhehind将变成:(?)?