正则提取文字的问题,请大师帮忙,谢谢
data = '''通用设备70/195|祥鑫科技33/195通用设备;泰嘉股份107/195通用设备'''如何提取后面接数字的文字
也就是要提取:通用设备,祥鑫科技,泰嘉股份
请大师帮忙,谢谢 您可以使用正则表达式来提取后面接数字的文字。具体操作如下:
import re
data = '''通用设备70/195|祥鑫科技33/195通用设备;泰嘉股份107/195通用设备'''
# 使用正则表达式提取后面接数字的文字
pattern = r'([^\d\W]+\w*)\d+/\d+'
result = re.findall(pattern, data)
# 输出提取结果
print(result)# ['通用设备', '祥鑫科技', '泰嘉股份']
解释一下上面的代码:
- 首先导入 re 模块,该模块提供了正则表达式的功能。
- 定义要匹配的字符串 data。
- 使用正则表达式模式 r'([^\d\W]+\w*)\d+/\d+',其中:
- [^\d\W]+ 表示匹配一个或多个非数字和非单词字符,也就是要提取的文字部分。
- \w* 表示匹配零个或多个单词字符,用于处理可能存在的英文单词后缀(如 Corp)。
- \d+/\d+ 表示匹配一个或多个数字、斜杠、一个或多个数字,也就是要过滤掉的部分。
- ( ) 表示捕获匹配的内容,这里用于捕获要提取的文字部分。
- 使用 re.findall() 函数,传入正则表达式模式和要匹配的字符串 data,该函数会返回所有匹配的字符串列表。
- 最后输出提取结果。
上面的代码会输出:['通用设备', '祥鑫科技', '泰嘉股份']。
可以使用Python的re库(正则表达式库)来进行提取。如下所示:
import re
data = "通用设备70/195|祥鑫科技33/195通用设备;泰嘉股份107/195通用设备"
result = re.findall(r'([\u4e00-\u9fa5]+)(?=\d)', data)
print(result)
这段代码将找到所有跟在一个中文字符串后面的数字,然后将其前面的中文字符串提取出来。输出结果为:
['通用设备', '祥鑫科技', '泰嘉股份']
解释一下正则表达式的部分:
·[\u4e00-\u9fa5]+ :匹配一个或多个中文字符。
·(?=\d) :使用正向预查,表示只匹配跟在一个数字后面的内容(不包括这个数字)。 isdkz 发表于 2023-5-2 10:18
可以使用Python的re库(正则表达式库)来进行提取。如下所示:
没我快( 陶远航 发表于 2023-5-2 10:19
没我快(
gpt4速度确实是慢了点{:10_277:} isdkz 发表于 2023-5-2 10:20
gpt4速度确实是慢了点
GPT-4?!
官网吗? 陶远航 发表于 2023-5-2 10:21
GPT-4?!
官网吗?
对的,而且我的 gpt4 api 也通过了,我自己在本地也搭了一个,
gpt4目前的速度跟 gpt3.5 还是有点差距的,gpt3.5基本就是秒回,但是 gpt4 的结果比较准确{:10_256:},
你可以对比一下运行结果
isdkz 发表于 2023-5-2 10:24
对的,而且我的 gpt4 api 也通过了,我自己在本地也搭了一个,
gpt4目前的速度跟 gpt3.5 还是有点差 ...
嗯,确实 isdkz 发表于 2023-5-2 10:24
对的,而且我的 gpt4 api 也通过了,我自己在本地也搭了一个,
gpt4目前的速度跟 gpt3.5 还是有点差 ...
gpt5有吗?
ai.com是官网? sfqxx 发表于 2023-5-2 12:39
gpt5有吗?
ai.com是官网?
ai.com就是官网呀,得fq
gpt5还早着呢
isdkz 发表于 2023-5-2 12:42
ai.com就是官网呀,得fq
gpt5还早着呢
原来如此{:10_303:}
页:
[1]