【发布时间】:2023-04-04 06:50:02
【问题描述】:
我有一个需要写入磁盘的数据框,但 pyspark 不允许任何这些字符 ,;{}()\\n\\t=
在作为镶木地板文件写入时出现在标题中。
所以我写了一个简单的脚本来检测是否发生这种情况
import re
for each_header in all_headers:
print(re.match(",;{}()\\n\\t= ", each_header))
但是对于每个标题,都打印了None
。这是错误的,因为我知道我的文件在其标题中有空格。
所以,我决定通过执行以下几行来检查它
a = re.match(",;{}()\\n\\t= ", 'a s')
print(a)
a = re.search(",;{}()\\n\\t= ", 'a s')
print(a)
这也导致None
被打印出来。
我不确定我在这里做错了什么。
PS:我用的是python3.7
【问题讨论】:
-
你可能需要一个字符类
[,;{}()\\n\\\\t=]
。 -
你的正则表达式匹配这些字符。你试过令牌
[
和]
([,;{}\(\)\\n\\t=])
吗? -
对于上述两个 cmets,我们不需要在字符类中对
\n
之类的东西进行双重转义,一个反斜杠就足够了。而(){}
根本不需要任何转义。 -
print((a.groups()))
你可以看到与你的模式匹配的单词
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python正则表达式:难以理解结果[重复] - Python技术站