python - 如何从字符串中删除斜线、字母和数字?
问题描述
我试图获得一个漂亮而干净的字符串表示。我想要的版本是 ['Course Number: CLASSIC 10A | 课程名称:希腊文明概论1 | 课程单元:4']
但是,当前的输出是 ['Course Number: CLASSIC\xa010A | 课程名称:希腊文明概论1 | 课程单元:4']。
有东西 (\xa) 妨碍了第一个元素。我将附上下面的代码部分。提前感谢您帮助我。
all_tds = [get_tds(scrollable) for scrollable in scrollables]
def num_name_unit(list, index):
all_rows = []
num = list[index][0].get_text(strip=True)
name = str.isalnum, list[index][1].get_text(strip=True)
unit = list[index][2].get_text(strip=True)
all_rows += [('Course Number: {0} | Course Name: {1} | Course Unit: {2}'.format(num, name, unit)]
return all_rows
c = num_name_unit(all_tds[0], all_tds.index(all_tds[0]))
print(c)
解决方案
正如@melpomene 评论的那样,字符串 '\xa0' 是一个字符 - 一个不间断的空格......你真正需要对这个字符串做的是通过使用regex将其重新格式化为所谓的'原始文本' :
import re
re.sub('[^A-Za-z0-9-|:]+', ' ', str)
这通常是我删除特殊字符/格式的首选方式 - 但它是如何工作的......如果我们查看第一组引号,'[^A-Za-z0-9-|:]+'
我们会看到我们声明的第一件事就是A-Z
从 A 到 Z 全部用大写字母表示. 然后我们从a-z
所有小写字母中获取。之后,我们得到0-9
了显示从 0 到 9 的所有值,最后我们得到|:
了表示任何冒号或管道...让我们用一个简单的脚本来测试它:
import re
vals = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|:'
print(vals == re.sub('[^A-Za-z0-9-|:]+', ' ', vals))
我建议您自己运行此代码进行尝试,但您得到的答案是True
.
将其合并到您的脚本中将非常简单:
import re
all_tds = [get_tds(scrollable) for scrollable in scrollables]
def num_name_unit(list, index):
all_rows = []
num = list[index][0].get_text(strip=True)
name = str.isalnum, list[index][1].get_text(strip=True)
unit = list[index][2].get_text(strip=True)
all_rows += [('Course Number: {0} | Course Name: {1} | Course Unit: {2}'.format(num, name, unit)]
return all_rows
c = num_name_unit(all_tds[0], all_tds.index(all_tds[0]))
print(re.sub('[^A-Za-z0-9-|:]+', ' ', c))
如果您遇到希望包含在字符串中的任何其他值,只需将它们添加到^A-Za-z0-9-|:
. 例如,如果您也希望保留下划线,您只需使用'[^A-Za-z0-9-|:_]+'
Hope this help。要阅读更多内容,请转到 python3 文档的regex how to 部分。
推荐阅读
- nginx - Nginx - 位置规范后的一切反向代理
- java - 如何修复 content.Equals 的错误输出?
- excel - 将 MAC 中的 excel 从 excel 连接到 Azure sql 数据库
- python - 返回特定字符对之间的部分字符串,在具有多个字符对的字符串中
- android - 在 Android 和 iOS 上实现 React Native 推送通知最可靠的方法是什么
- angular - 防止通过 toastie 显示多个错误
- pyspark - 在 Pyspark [非熊猫 df] 中将许多数据帧合并为一个
- parse-platform - 在解析查询ionic4中获取用户关系用户
- javascript - 使用 Nginx 重定向反应子路由
- excel - Ability to tag colored text from Excel file for CSV export?