1 既然是提取数字,那么数字的形式一般是:整数,小数,整数加小数;

2 所以一般是形如:----.-----;

3 根据上述正则表达式的含义,可写出如下的表达式:"\d+.?\d*";

4 \d+匹配1次或者多次数字,注意这里不要写成*,因为即便是小数,小数点之前也得有一个数字;.?这个是匹配小数点的,可能有,也可能没有;\d*这个是匹配小数点之后的数字的,所以是0个或者多个

# -*- coding: cp936 -*-
import re
string="A1.45,b5,6.45,8.82"
print(re.findall(r"\d+\.?\d*",string))  # 查找
# ['1.45', '5', '6.45', '8.82']
res = re.sub(r"\d+\.?\d*", "", string)  # 过滤
  • 其他 类似:
  • 如 过滤中英文标点和特殊符号
  • 过滤换行符等特俗符号
# 替换 空格 \t \r \n
import re
str1='123  456  7\t8\r9\n10'
str1 = re.sub('[\s+]', '', str1)
print(str1)
                    文章目录背景思路code背景训练文本分类模型 需要对文本中的数字、特殊符号预处理思路1 既然是提取数字,那么数字的形式一般是:整数,小数,整数加小数;2 所以一般是形如:----.-----;3 根据上述正则表达式的含义,可写出如下的表达式:"\d+.?\d*";4 \d+匹配1次或者多次数字,注意这里不要写成*,因为即便是小数,小数点之前也得有一个数字;.?这个是匹配小数点的,可能有,也可能没有;\d*这个是匹配小数点之后的数字的,所以是0个或者多个code# -*- coding:
				
以下代码是在一段字符串,用正则表达式找到数字,使用 replace() 方法,用找到的数字的两倍值替换原数字。replace() 方法的第二个参数为一个函数,返回找到数字的两倍值。 <script> var str="去年是2014年,今年是2015年"; var newStr=str.replace(/\d+/g, function ...
import re string = '仿妆怎么画?¥%*@' result = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])", "", string) chinese = ''.join(result) print(chinese) 仿妆怎么画 正则去除字母、数字及特殊字符,只保留文汉字 s = '<a class="comment_sticker" href="https:/ text = "我的电话号码是:123-456-789,你可以打电话给我。" phone_pattern = re.compile(r'\d{3}-\d{3}-\d{4}') phone_numbers = phone_pattern.findall(text) print(phone_numbers) 输出结果为: ['123-456-789'] 其,`re.compile()`函数用于编译正则表达式,`r'\d{3}-\d{3}-\d{4}'`表示匹配三个数字、一个短横线、三个数字、一个短横线、四个数字的模式。`findall()`函数用于在文本查找所有匹配的模式,并返回一个列表。 ### 回答2: 在Python使用正则表达式提取字符串的电话号码可以使用re(Regular Expression,正则表达式)库。以下是几个步骤: 1.导入re库 import re 2.定义正则表达式 电话号码的格式可能不同,有可能是带区号的,有可能是带分机号的,也有可能是没有区号和分机号的。所以需要定义多个正则表达式来匹配不同格式的电话号码。 1)只有数字的电话号码(11位) pattern1 = r'\d{11}' 2)带区号的电话号码(可能有空格或“-”分隔符) pattern2 = r'\d{3}\s*-\s*\d{8}|\d{4}\s*-\s*\d{7}' 3)带分机号的电话号码 pattern3 = r'\d{8,11}\s*-\s*\d{1,5}' 3.使用re.match()函数匹配字符串 text = '我的电话号码是:13811112222,工作电话是:010-88888888,手机是:13666666666,分机号是:8888。' match1 = re.match(pattern1, text) match2 = re.match(pattern2, text) match3 = re.match(pattern3, text) 4.输出匹配结果 if match1: print('匹配结果1:', match1.group()) if match2: print('匹配结果2:', match2.group()) if match3: print('匹配结果3:', match3.group()) 完整代码如下: import re pattern1 = r'\d{11}' pattern2 = r'\d{3}\s*-\s*\d{8}|\d{4}\s*-\s*\d{7}' pattern3 = r'\d{8,11}\s*-\s*\d{1,5}' text = '我的电话号码是:13811112222,工作电话是:010-88888888,手机是:13666666666,分机号是:8888。' match1 = re.match(pattern1, text) match2 = re.match(pattern2, text) match3 = re.match(pattern3, text) if match1: print('匹配结果1:', match1.group()) if match2: print('匹配结果2:', match2.group()) if match3: print('匹配结果3:', match3.group()) 输出结果如下: 匹配结果1:13811112222 匹配结果2:010-88888888 匹配结果3:13666666666 - 8888 ### 回答3: 在Python使用正则表达式提取字符串的电话号码,需要先导入re模块,然后使用re.match、re.search、re.findall等函数来匹配字符串,并获取匹配到的部分。 首先定义一个字符串,假设为“我的电话号码是13888888888,你的电话号码是13999999999”,接下来使用正则表达式匹配该字符串的电话号码: ```python import re # 定义字符串 string = "我的电话号码是13888888888,你的电话号码是13999999999" # 正则表达式匹配电话号码 phone_numbers = re.findall(r'\d{11}', string) # 输出匹配到的电话号码 print("电话号码:", phone_numbers) 如果字符串有多个电话号码,使用re.findall函数会将所有匹配到的电话号码存储在一个列表正则表达式r'\d{11}'表示匹配11个数字,如果需要匹配其他长度的电话号码,可以根据实际情况修改正则表达式的数量词。 除此之外,还可以使用其他正则表达式的语法,如\d+、\d{3,4}-\d{7,8}等来匹配不同格式的电话号码。需要根据实际情况来选择匹配规则。 总的来说,Python使用正则表达式提取字符串的电话号码,实现起来比较简单。需要熟悉正则表达式的语法及其基本用法,并结合实际情况来选择合适的匹配规则。