Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.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正则表达式在__Python_Regex - Fatal编程技术网

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

我正在尝试使用正则表达式拆分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?!"
>>> 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>由于>W将与下划线匹配,你可以更直接地指定你所考虑的字符而不需要太多的工作:

 re.findall('[a-zA-Z0-9]+|[{0}]+'.format(punctuation), string)

由于>W将与下划线匹配,您可以更直接地指定您所考虑的字符而无需做太多的工作:

 re.findall('[a-zA-Z0-9]+|[{0}]+'.format(punctuation), string)

由于>W将与下划线匹配,您可以更直接地指定您所考虑的字符而无需做太多的工作:

 re.findall('[a-zA-Z0-9]+|[{0}]+'.format(punctuation), string)

由于>W将与下划线匹配,您可以更直接地指定您所考虑的字符而无需做太多的工作:

 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)
^以上仍然给我同样的问题:_Mark
re.findall('\w+[0}]+[u124;+.format(标点符号),st