Python 正则表达式 - 删除特定模式
Python Regular Expressions - Removing Specific Patterns
我正在尝试使用正则表达式删除与我的数据集中的流派名称相关联的特定键码。然而,到目前为止,我所拥有的是去掉大部分键码,但留下一些字母,我不确定为什么。经过检查,似乎主要是在 0 后面有字母的地方遇到了麻烦,例如“/m/0lxr”在 lxr 后面。
如果有人知道我将如何解决这个问题,请告诉我!
这是我目前的代码。
def prepare(self, word):
word = re.sub(r'//', "", word)
word = re.sub(r'/\u[0-9][a-z]', "", word)
word = re.sub(r'/.', "", word)
word = re.sub(r'/,', "", word)
word = re.sub(r'/!', "", word)
word = re.sub(r'/?', "", word)
word = re.sub(r'/{', "", word)
word = re.sub(r"'", "", word)
word = re.sub(r"//m//[0-9][a-z]+", "", word)
word = re.sub(r'[0-9][a-z]+', "", word)
word = re.sub(r'[a-z][0-9]+', "", word)
return word
试试这个
word="/m/0lsxr:Crime Fiction"
re.sub(r'.*:(\w*)',r'',word)
您可以使用 ast.literal_eval
:
import ast
s = '{"/m/0lsxr":"Crime Fiction"}'
final_output = ast.literal_eval(s).values()
print(final_output)
输出:
['Crime Fiction']
我正在尝试使用正则表达式删除与我的数据集中的流派名称相关联的特定键码。然而,到目前为止,我所拥有的是去掉大部分键码,但留下一些字母,我不确定为什么。经过检查,似乎主要是在 0 后面有字母的地方遇到了麻烦,例如“/m/0lxr”在 lxr 后面。
如果有人知道我将如何解决这个问题,请告诉我!
这是我目前的代码。
def prepare(self, word):
word = re.sub(r'//', "", word)
word = re.sub(r'/\u[0-9][a-z]', "", word)
word = re.sub(r'/.', "", word)
word = re.sub(r'/,', "", word)
word = re.sub(r'/!', "", word)
word = re.sub(r'/?', "", word)
word = re.sub(r'/{', "", word)
word = re.sub(r"'", "", word)
word = re.sub(r"//m//[0-9][a-z]+", "", word)
word = re.sub(r'[0-9][a-z]+', "", word)
word = re.sub(r'[a-z][0-9]+', "", word)
return word
试试这个
word="/m/0lsxr:Crime Fiction"
re.sub(r'.*:(\w*)',r'',word)
您可以使用 ast.literal_eval
:
import ast
s = '{"/m/0lsxr":"Crime Fiction"}'
final_output = ast.literal_eval(s).values()
print(final_output)
输出:
['Crime Fiction']