问一正则表达式?

来源:百度知道 编辑:UC知道 时间:2024/06/15 14:37:28
s.matches(".*电话.*") || s.matches(".*手机.*")
怎么把上面就写成一个正则表达式。
不是的,我是问,怎么把
s.matches(".*电话.*") || s.matches(".*手机.*")
变成
s.matches("。。。。。。。。。。")
一个正则表达式,不用||把两个连起来。

我目的是这样的,读取文件,把所有包含“电话”或者“手机”两个字的行抓出来。

s.matches(".*(?:电话|手机).*")

电话:\d{3,4}-\d{7,8}
手机:\d{11}

只是最基本的格式匹配,但不一定有效
如:电话123-4567890和手机12345678901都是可以通过的

如果还需要更进一步的匹配,需要你提供更详细的要求

所有电话:

试试这个:

^0(\d{2}[-]*\d{8}|\d{3}[-]*\d{7})|^1(59\d{8}|3\d{9})

匹配普通的座机电话区号有3位的和四位的 都已0开头

匹配所有以13开头的十一位手机、

匹配所有以159开头的所有是十一位手机

其他号段我还不知道有什么 。。。

哦 你如果要只匹配包含手机和电话两字的行 那就更加简单了

用这个: .*手机.*|.*电话.*

你要说不明白了拿出个例子说你要干什么就清楚了 呵呵

".*电话.*|.*手机.*"