|
发表于 2023-5-2 16:46:06
|
显示全部楼层
本楼为最佳答案
可以使用字符串的split函数和正则表达式来实现。
1. 以"|"为界,将字符串分成两部分:
2. 前面部分的字符串即为parts[0],提出即可:
- first_part = parts[0] # "通用设备"
复制代码
3. 后面部分的字符串即为parts[1],我们可以使用正则表达式来提取出所有符合要求的内容。具体来说,我们需要匹配所有的字母和汉字,紧跟着一个数字,然后紧跟着斜杠和数字。使用以下正则表达式即可:
- import re
- regex = r"([\u4e00-\u9fa5a-zA-Z]+)\d+/\d+"
复制代码
这个正则表达式的意思是先匹配一个汉字或字母,然后匹配一个或多个数字,然后匹配一个斜杠,最后匹配一个或多个数字。我们将汉字或字母使用()包起来,表示我们想提取这部分内容。
4. 然后使用re模块的findall函数来查找所有匹配的内容:
- matches = re.findall(regex, parts[1])
复制代码
5. matches即为所有符合要求的字符串列表,我们可以使用join函数将它们拼接成一个字符串:
- second_part = ",".join(matches) # "祥鑫科技,泰嘉股份"
复制代码
完整代码如下:
- import re
- text = '通用设备70/195|祥鑫科技33/195通用设备;泰嘉股份107/195通用设备'
- parts = text.split("|")
- first_part = parts[0]
- regex = r"([\u4e00-\u9fa5a-zA-Z]+)\d+/\d+"
- matches = re.findall(regex, parts[1])
- second_part = ",".join(matches)
- print(first_part) # "通用设备"
- print(second_part) # "祥鑫科技,泰嘉股份"
复制代码 |
|