Python正则表达式:检测\x0";串串的?
这是我在特定网页中爬过的Python正则表达式:检测\x0";串串的?,python,regex,Python,Regex,这是我在特定网页中爬过的字符串。 我想做的是用空空间替换\x0 我尝试的是: a = '수치 몇까지 \x01\x01참문 여시나요?' 但它不起作用 我需要你的帮助。谢谢 编辑: 由于还有其他代码,如\x02、\x08,我想使用regex而不是字符串replace需要替换的字符是\x01。因此,要做到这一点: 代码: 测试代码: 结果: 需要替换的字符是\x01。因此,要做到这一点: 代码: 测试代码: 结果: 字符串'\x01'是一个单个字符,可以用ctrl-a、ASCII SOH或Uni
字符串。
我想做的是用空空间替换\x0
我尝试的是:
a = '수치 몇까지 \x01\x01참문 여시나요?'
但它不起作用
我需要你的帮助。谢谢
编辑:
由于还有其他代码,如\x02、\x08,我想使用regex
而不是字符串replace
需要替换的字符是\x01
。因此,要做到这一点:
代码:
测试代码:
结果:
需要替换的字符是\x01
。因此,要做到这一点:
代码:
测试代码:
结果:
字符串'\x01'
是一个单个字符,可以用ctrl-a、ASCII SOH或Unicode 1来表示。在Python字符串中,此字符由序列\xHH
表示,其中HH
是两位十六进制字符代码。类似地,'\x41'
只是表示包含单个字符的字符串'A'
的另一种方式
如果要替换十六进制转义表示以零开头的字符,则这是正则表达式字符范围[\x00-\x0f]
(虽然这个特定的范围看起来相当随意——如果您实际上试图删除不可打印字符、控制字符或其他定义良好的组,您需要特别询问该特定范围,或者干脆用谷歌搜索它)
不过,您并不需要正则表达式:
수치 몇까지 참문 여시나요?
수치 몇까지 참문 여시나요?
1 Unicode当然严格地说是ASCII的超集。在Python 3中,所有字符串都是Unicode字符串。字符串'\x01'
是单个字符,可以用ctrl-a、ASCII SOH或Unicode 1表示。在Python字符串中,此字符由序列\xHH
whereHH表示e> 是两位十六进制字符代码。类似地,'\x41'
只是表示包含单个字符的字符串'A'
的另一种方式
如果要替换十六进制转义表示以零开头的字符,则这是正则表达式字符范围[\x00-\x0f]
(虽然这个特定的范围看起来相当随意——如果您实际上试图删除不可打印字符、控制字符或其他定义良好的组,您需要特别询问该特定范围,或者干脆用谷歌搜索它)
不过,您并不需要正则表达式:
수치 몇까지 참문 여시나요?
수치 몇까지 참문 여시나요?
1 Unicode当然严格地说是ASCII的超集。在Python 3中,所有字符串都是Unicode字符串。我编辑了帖子。请检查答案后是否有更改?我编辑了帖子。请检查答案后是否有更改?您需要的是\x02
,\x08
等是非asc的文本表示ii个字符。您的regexp正在尝试匹配文本字符串。@MihanEntalpo的链接似乎是合适的。您遇到的问题是,\x01
是一个字符。您无法在尝试时匹配它。MihanEntalpo的链接有以下内容:字符串。可打印的
。尝试一下……您想要的是\x02
,\x08
,等等是非ascii字符的文本表示形式。您的regexp正在尝试匹配文本字符串。@MihanEntalpo的链接似乎是合适的。您遇到的问题是\x01
是一个字符。您无法在尝试时匹配它。MihanEntalpo的链接有以下内容:字符串。可打印的
。尝试一下……可能是您的实际操作用例是删除不可打印的ASCII或韩文字符?首先,请检查是否确实要用(空格)1替换\x01
,用(空格)2替换\x02
,这是可以做到的,但我没有费心尝试实现它。如果您真的需要,我很乐意更新这个答案(但也许你应该解释一下你为什么想要这样做,以及你真正希望实现的目标)。也许你的实际用例是删除不能打印的ASCII或韩文字符?首先,看看你是否真的想用(空格)1替换\x01
,用(空格)替换\x02
)2等等,这是可以做到的,但我没有费心去实现它。如果这真的是你所需要的,我很乐意更新这个答案(但也许你应该解释一下为什么你会想要它,以及你真正希望实现什么)。
a = '수치 몇까지 \x01\x01참문 여시나요?'
print(a)
print(a.replace('\x01', ''))
수치 몇까지 참문 여시나요?
수치 몇까지 참문 여시나요?
string = ''.join([x if ord(x) > 15 else ' ' for x in string])