Python正则表达式在_
我正在尝试使用正则表达式拆分python中的字符串。这句话对我来说几乎是完美的:Python正则表达式在_,python,regex,Python,Regex,我正在尝试使用正则表达式拆分python中的字符串。这句话对我来说几乎是完美的: from string import punctuation import re row = re.findall('\w+|[{0}]+'.format(punctuation), string) 但是,它也不会在u的实例上拆分字符串。例如: >>> string = "Hi my name is _Mark. I like apples!! Do you?!" >>> ro
from string import punctuation
import re
row = re.findall('\w+|[{0}]+'.format(punctuation), string)
但是,它也不会在u的实例上拆分字符串。例如:
>>> string = "Hi my name is _Mark. I like apples!! Do you?!"
>>> row = re.findall('\w+|[{0}]+'.format(punctuation), string)
>>> row
['Hi', 'my', 'name', 'is', '_Mark', '.', 'I', 'like', 'apples', '!!', 'Do', 'you', '?!']
我想要的是:
['Hi', 'my', 'name', 'is', '_', 'Mark', '.', 'I', 'like', 'apples', '!!', 'Do', 'you', '?!']
我读了它,因为它被认为是一个角色。有人知道如何做到这一点吗?谢谢你的帮助。< P>由于
re.findall('[a-zA-Z0-9]+|[{0}]+'.format(punctuation), string)
由于
re.findall('[a-zA-Z0-9]+|[{0}]+'.format(punctuation), string)
由于
re.findall('[a-zA-Z0-9]+|[{0}]+'.format(punctuation), string)
由于
re.findall('[a-zA-Z0-9]+|[{0}]+'.format(punctuation), string)
因为如果可能,析取的左侧将始终首先匹配,所以在匹配字母之前,您可以简单地使用标点符号包含
\uu
:
row = re.findall(r'[{0}_]+|\w+'.format(string.punctuation), mystring)
但是,您也可以这样做,而不必费心处理string.标点符号。“标点符号”是指既不是空格也不是单词字符的任何东西:
row = re.findall(r"(?:[^\s\w]|_)+|\w+", mystring)
另外,在代码示例中,名为string
的字符串“阴影”模块string
。不要这样做,这是一种不好的做法,会导致错误。因为析取的左侧总是首先匹配,如果可能的话,在匹配字母之前,您可以简单地使用标点符号包含。
:
row = re.findall(r'[{0}_]+|\w+'.format(string.punctuation), mystring)
但是,您也可以这样做,而不必费心处理string.标点符号。“标点符号”是指既不是空格也不是单词字符的任何东西:
row = re.findall(r"(?:[^\s\w]|_)+|\w+", mystring)
另外,在代码示例中,名为string
的字符串“阴影”模块string
。不要这样做,这是一种不好的做法,会导致错误。因为析取的左侧总是首先匹配,如果可能的话,在匹配字母之前,您可以简单地使用标点符号包含。
:
row = re.findall(r'[{0}_]+|\w+'.format(string.punctuation), mystring)
但是,您也可以这样做,而不必费心处理string.标点符号。“标点符号”是指既不是空格也不是单词字符的任何东西:
row = re.findall(r"(?:[^\s\w]|_)+|\w+", mystring)
另外,在代码示例中,名为string
的字符串“阴影”模块string
。不要这样做,这是一种不好的做法,会导致错误。因为析取的左侧总是首先匹配,如果可能的话,在匹配字母之前,您可以简单地使用标点符号包含。
:
row = re.findall(r'[{0}_]+|\w+'.format(string.punctuation), mystring)
但是,您也可以这样做,而不必费心处理string.标点符号。“标点符号”是指既不是空格也不是单词字符的任何东西:
row = re.findall(r"(?:[^\s\w]|_)+|\w+", mystring)
另外,在代码示例中,名为string
的字符串“阴影”模块string
。不要这样做,这是一种不好的做法,会导致错误。中明确指出,\w
不仅包括字母数字字符,还包括下划线:
\w
如果未指定区域设置和UNICODE标志,则匹配任何
字母数字字符和下划线;这相当于
套件[a-zA-Z0-9]。使用区域设置时,它将与集合[0-9_uu]匹配
当前文件中定义为字母数字的任何字符
场所如果设置了UNICODE,则这将与字符[0-9_u2;]加匹配
在Unicode字符中分类为字母数字的内容
属性数据库
正如Eric在他的解决方案中指出的那样,最好只指定一组字母数字字符[a-zA-Z0-9]
中明确指出,\w
不仅包括字母数字字符,还包括下划线:
\w
如果未指定区域设置和UNICODE标志,则匹配任何
字母数字字符和下划线;这相当于
套件[a-zA-Z0-9]。使用区域设置时,它将与集合[0-9_uu]匹配
当前文件中定义为字母数字的任何字符
场所如果设置了UNICODE,则这将与字符[0-9_u2;]加匹配
在Unicode字符中分类为字母数字的内容
属性数据库
正如Eric在他的解决方案中指出的那样,最好只指定一组字母数字字符[a-zA-Z0-9]
中明确指出,\w
不仅包括字母数字字符,还包括下划线:
\w
如果未指定区域设置和UNICODE标志,则匹配任何
字母数字字符和下划线;这相当于
套件[a-zA-Z0-9]。使用区域设置时,它将与集合[0-9_uu]匹配
当前文件中定义为字母数字的任何字符
场所如果设置了UNICODE,则这将与字符[0-9_u2;]加匹配
在Unicode字符中分类为字母数字的内容
属性数据库
正如Eric在他的解决方案中指出的那样,最好只指定一组字母数字字符[a-zA-Z0-9]
中明确指出,\w
不仅包括字母数字字符,还包括下划线:
\w
如果未指定区域设置和UNICODE标志,则匹配任何
字母数字字符和下划线;这相当于
套件[a-zA-Z0-9]。使用区域设置时,它将与集合[0-9_uu]匹配
当前文件中定义为字母数字的任何字符
场所如果设置了UNICODE,则这将与字符[0-9_u2;]加匹配
在Unicode字符中分类为字母数字的内容
属性数据库
正如Eric在他的解决方案中指出的那样,最好只指定一组字母数字字符[a-zA-Z0-9]
re.findall('\w+[0}]+[u124;+'.format(标点符号),string)
^以上仍然给我同样的问题:_Markre.findall('\w+[0}]+[u124;+.format(标点符号),st