为了账号安全,请及时绑定邮箱和手机立即绑定

如何仅获取字符串中任何特殊字符之前的字母数字字符?

如何仅获取字符串中任何特殊字符之前的字母数字字符?

慕哥9229398 2022-12-27 10:04:07
例子:string1 = '71B46>TC>77'有没有办法在没有 for 循环的情况下获得以下内容:output = '71B46'我不能对“>”进行硬编码,因为特殊字符会有所不同。谢谢你。
查看完整描述

4 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

text = "71B46>TC>77"

position = text.index('>')

result = text[0:position]

# 71B46

更新

import re


regex = r"[\W+]"

text = "71B46>TC>77"

position = re.search(regex, text).start()

print(text[0:position])

# 71B46


查看完整回答
反对 回复 2022-12-27
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

一线解决方案


import re

get_chars_before_spl_chars = lambda string1 :re.findall("[\dA-Za-z]*",string1)[0]

get_chars_before_spl_chars('71B46>TC>77')

#'71B46'


查看完整回答
反对 回复 2022-12-27
?
慕沐林林

TA贡献2016条经验 获得超9个赞

你应该试试这个。


import re

start_pos = re.search(r'\W+', string1).start()

print(string1[0:start_pos])


查看完整回答
反对 回复 2022-12-27
?
开满天机

TA贡献1786条经验 获得超13个赞

不使用正则表达式。过滤字母数字字符。


s = '71B46>TC>77'

modified = ''.join(filter(str.isalnum, s))

# or

modified = ''.join((c for c in s if c.isalnum()))


查看完整回答
反对 回复 2022-12-27
  • 4 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号