Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式:检测\x0";串串的?_Python_Regex - Fatal编程技术网

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
where
HH表示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])