由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 请问高手们linux中怎么判断一串数字符合电话号码?
相关主题
google voice 能申请中国区内的电话号码吗?在emacs中怎么按照某种格式进行替换?
请教一格批量文件名修改的问题哈sed里面正则表达式匹配字符越少越好怎么写?
网络设置问题How to find the first decimal number in a string ?
问个grep正则匹配的问题a sed question
script questionquestion about "stty"
如何实现这个想法,关于修改txt文件的请问怎么把两个行数相等的文件合并起来?
一行命令找出html中所有img src?怎样创造一个 segv (转载)
请问一个awk的问题shell scripting 问题
相关话题的讨论汇总
话题: str话题: phone话题: number话题: echo话题: 符合
进入Linux版参与讨论
1 (共1页)
n*********1
发帖数: 111
1
例如, 617-123-5555符合电话号码,而abc-456-1234和617--1235555不符合电话号码。
请问要怎么写程序?
c*********3
发帖数: 197
2
菜鸟回答你这个问题。首先问题不清楚。你是用什么写。
最简单的:
\d{3}-\d{3}-\d{4}
n*********1
发帖数: 111
3
就是用户输入一串字符,然后判断是否符合电话号码要求。
如果用户输入123-456-7890 或者 (123)456-7890这类的都符合。
用linux语言设计程序来判断, 符合就输出yes, 不符合就输出no。

【在 c*********3 的大作中提到】
: 菜鸟回答你这个问题。首先问题不清楚。你是用什么写。
: 最简单的:
: \d{3}-\d{3}-\d{4}

l****g
发帖数: 249
4
$ str=`echo "456-456-1234"|sed "s/[0-9]/%/g"`
$ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
$
$ str=`echo "abc-456-1234"|sed "s/[0-9]/%/g"`
$ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
NOT PHONE NUMBER
$
$ str=`echo "617--1235555"|sed "s/[0-9]/%/g"`
$ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
NOT PHONE NUMBER

码。

【在 n*********1 的大作中提到】
: 例如, 617-123-5555符合电话号码,而abc-456-1234和617--1235555不符合电话号码。
: 请问要怎么写程序?

a9
发帖数: 21638
5
你直接从网上找个正则表达式吧。
美国区号和电话都没有1开头的,你举的这个例子就不符合。

【在 n*********1 的大作中提到】
: 就是用户输入一串字符,然后判断是否符合电话号码要求。
: 如果用户输入123-456-7890 或者 (123)456-7890这类的都符合。
: 用linux语言设计程序来判断, 符合就输出yes, 不符合就输出no。

z*****k
发帖数: 600
6
如果在email给电话号码,人可能写的不让机器自动识别。你的如果不是和人挑战的话
,没有什么困难。不过有的国家号码会像抽奖号码.
n*********1
发帖数: 111
7
这串数字是用户输入的,我们要read进来,请问这样要怎么写?
%代表数字吗

【在 l****g 的大作中提到】
: $ str=`echo "456-456-1234"|sed "s/[0-9]/%/g"`
: $ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
: $
: $ str=`echo "abc-456-1234"|sed "s/[0-9]/%/g"`
: $ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
: NOT PHONE NUMBER
: $
: $ str=`echo "617--1235555"|sed "s/[0-9]/%/g"`
: $ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
: NOT PHONE NUMBER

p****u
发帖数: 2422
8
$ str=`echo "%%%-%%%-%%%%"|sed "s/[0-9]/%/g"`
$ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
$

【在 l****g 的大作中提到】
: $ str=`echo "456-456-1234"|sed "s/[0-9]/%/g"`
: $ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
: $
: $ str=`echo "abc-456-1234"|sed "s/[0-9]/%/g"`
: $ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
: NOT PHONE NUMBER
: $
: $ str=`echo "617--1235555"|sed "s/[0-9]/%/g"`
: $ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
: NOT PHONE NUMBER

l*****s
发帖数: 2109
9
一般都是正则表达式了。
但是,原来看过一个说法,理论上,不可能有正确的解法。
我非CS,不懂。
c*****m
发帖数: 1160
10

你这个两个括号(123)是中文全角的括号。你确定这样的符合电话号码要求?句号
123.456.7890符合么?
你自己要先有明确的定义,怎样的符合,怎样的不符合,才能考虑编程问题。

【在 n*********1 的大作中提到】
: 就是用户输入一串字符,然后判断是否符合电话号码要求。
: 如果用户输入123-456-7890 或者 (123)456-7890这类的都符合。
: 用linux语言设计程序来判断, 符合就输出yes, 不符合就输出no。

相关主题
如何实现这个想法,关于修改txt文件的在emacs中怎么按照某种格式进行替换?
一行命令找出html中所有img src?sed里面正则表达式匹配字符越少越好怎么写?
请问一个awk的问题How to find the first decimal number in a string ?
进入Linux版参与讨论
n*********1
发帖数: 111
11
两个括号是英文输入法的括号,只有xxx-xxx-xxxx和(xxx)xxx-xxxx这两种格式才符合。

【在 c*****m 的大作中提到】
:
: 你这个两个括号(123)是中文全角的括号。你确定这样的符合电话号码要求?句号
: 123.456.7890符合么?
: 你自己要先有明确的定义,怎样的符合,怎样的不符合,才能考虑编程问题。

L*********s
发帖数: 3063
12
perl regular expressions
c*****m
发帖数: 1160
13

合。
还有没有更多的要求?比如说,000-000-0000算不算一个正确的电话号码?要不要把前
面三位跟现有的区号来匹配?

【在 n*********1 的大作中提到】
: 两个括号是英文输入法的括号,只有xxx-xxx-xxxx和(xxx)xxx-xxxx这两种格式才符合。
n*********1
发帖数: 111
14
不用,就这些要求现在。
请问要怎么编写?

【在 c*****m 的大作中提到】
:
: 合。
: 还有没有更多的要求?比如说,000-000-0000算不算一个正确的电话号码?要不要把前
: 面三位跟现有的区号来匹配?

l****g
发帖数: 249
15
你就抬杠吧。我只不过给个思路而已。
不过说回来,我看楼主都没有弄清楚怎么回事。什么叫linux语言设计程序啊?

【在 p****u 的大作中提到】
: $ str=`echo "%%%-%%%-%%%%"|sed "s/[0-9]/%/g"`
: $ if [ $str != "%%%-%%%-%%%%" ]; then echo "NOT PHONE NUMBER"; fi
: $

l*********o
发帖数: 3091
16
文科生就别编程序了,蛋疼。

码。

【在 n*********1 的大作中提到】
: 例如, 617-123-5555符合电话号码,而abc-456-1234和617--1235555不符合电话号码。
: 请问要怎么写程序?

L*1
发帖数: 11537
17
# Perl function to validate a phone number
sub validatePhoneNumber($)
{
my ($str) = @_;
# filter out all space chars: this is a quick and dirty one,
# will not work if it is like this: a3b2v4455-9900
$str =~ s/\D//g;
# filter out leading 1
$str =~ s/^1//;
return (length $str == 10)? 1 : 0;
}
c*****m
发帖数: 1160
18

你fail了。这个程序会把617--1235555当作正确的电话号码。

【在 L*1 的大作中提到】
: # Perl function to validate a phone number
: sub validatePhoneNumber($)
: {
: my ($str) = @_;
: # filter out all space chars: this is a quick and dirty one,
: # will not work if it is like this: a3b2v4455-9900
: $str =~ s/\D//g;
: # filter out leading 1
: $str =~ s/^1//;
: return (length $str == 10)? 1 : 0;

L*1
发帖数: 11537
19
Yes, you are absolutely right.
But I told you that it would fail in the comment.

【在 c*****m 的大作中提到】
:
: 你fail了。这个程序会把617--1235555当作正确的电话号码。

1 (共1页)
进入Linux版参与讨论
相关主题
shell scripting 问题script question
linux tcsh下less的问题如何实现这个想法,关于修改txt文件的
请教 GNU Screen display 的问题一行命令找出html中所有img src?
linux如何生成可执行文件?请问一个awk的问题
google voice 能申请中国区内的电话号码吗?在emacs中怎么按照某种格式进行替换?
请教一格批量文件名修改的问题哈sed里面正则表达式匹配字符越少越好怎么写?
网络设置问题How to find the first decimal number in a string ?
问个grep正则匹配的问题a sed question
相关话题的讨论汇总
话题: str话题: phone话题: number话题: echo话题: 符合