正则表达式 - 如何取字符串中的电话号码?
问题描述:
字符串中的电话号码格式不唯一,如何只用一个正则表达式就将其取出来?
例子:
- 我的电话是13866778899有空给我的打电话
- 我的电话是138 6677 8899有空给我的打电话
- 我的电话是138-6677-8899有空给我的打电话
就是手机号中间有可能会有空格存在,这样的正则该如何写呢?
答
是不是可以考虑把空格和- 替换成""再截取
答
\d{3}[\s\-]{0,1}\d{4}[\s\-]{0,1}\d{4}
或者
\d[\d\s\-]{9,}\d
答
java 的话在代码上帮不了你
但是思路应该都是一样
先去掉空格然后在用电话号码的正则表达式处理就是了
void trim( string &s )
{
int index = 0;
if ( !s.empty() )
{
while ( ( index = s.find( ' ', index ) ) != string::npos )
s.erase( index, 1 );
}
}
然后你看看这个的处理能不能帮到你把
https://blog.csdn.net/github_36344730/article/details/79757676
答
建议做个字符串转换,可以用字符串的替换函数replaceAll进行空格,-等特殊字符转换,然后通过手机号正则表达式/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/进行手机验证
答
\d\d\d.*\d\d\d\d.*\d\d\d\d 这个简单粗暴 不管你中间是什么