Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 使用“改进非字母符号的过滤”;ascii字母;_Python_String - Fatal编程技术网

Python 使用“改进非字母符号的过滤”;ascii字母;

Python 使用“改进非字母符号的过滤”;ascii字母;,python,string,Python,String,我正在删除字符串开头的所有非字母符号,如下所示: from string import ascii_letters non_letter = ''.join(set(map(chr, range(128))) - set(ascii_letters)) mystring = '— — This is the description of' mystring.lstrip(non_letter) 它在我需要的大多数情况下都能正常工作。然而,在上面所示的示例中,输出是-,这是对的描述,即符号-

我正在删除字符串开头的所有非字母符号,如下所示:

from string import ascii_letters

non_letter = ''.join(set(map(chr, range(128))) - set(ascii_letters))

mystring = '— — This is the description of'
mystring.lstrip(non_letter)

它在我需要的大多数情况下都能正常工作。然而,在上面所示的示例中,输出是
-,这是对
的描述,即符号
-
。如何修复?

您可以使用正则表达式将字符串开头的非字母(拉丁/ASCII)字母链替换为空字符串:

import re

mystring = '— — This is the description of'
trimmed = re.sub(r"^[^a-zA-Z]*", "", mystring)

可以使用正则表达式将字符串开头的非字母(拉丁/ASCII)字母链替换为空字符串:

import re

mystring = '— — This is the description of'
trimmed = re.sub(r"^[^a-zA-Z]*", "", mystring)

您的
非字母定义仅包含非字母的ASCII字符。(从0到127循环并选择所有非字母字符。)但要删除的字符不是ASCII字符;他们的代码点高于127

如果您确实希望只针对7位ASCII范围,请预处理字符串以删除该范围之外的任何内容

pure\u ascii(输入字符串):
返回“”。如果ord(l)<128,则在inputstring中加入(l代表l)

更一般地说,在这个千年中,可能会使用Unicode字符属性来真正针对您实际想要针对的代码点。

您的
非字母定义只包含非字母的ASCII字符。(从0到127循环并选择所有非字母字符。)但要删除的字符不是ASCII字符;他们的代码点高于127

如果您确实希望只针对7位ASCII范围,请预处理字符串以删除该范围之外的任何内容

pure\u ascii(输入字符串):
返回“”。如果ord(l)<128,则在inputstring中加入(l代表l)

更一般地说,在这个千年中,可能会使用Unicode字符属性来真正针对您实际想要针对的代码点。

请显示
打印(非字母)
@ack的输出:我认为它是以某种方式编码的。无论如何,我得到了这个
08(2 |#!,$*.&%/}:4“=9;75+~)-63”
。请显示
print(非字母)
@ack:我认为它是以某种方式编码的。无论如何,我得到了这个
08(2 |#!,$*.&%/:4”=9;75+~)-63?