Python中的正则表达式拆分
我对Python比较陌生,我正在尝试使用re拆分字符串。 我做了一些研究,遇到了一些例子,我试了一下。它们似乎有效,但有局限性 我正在使用一个与整数值关联的字符串键的字典。我试图对每个单词应用一个权重,该权重取决于与键字符串关联的整数值。我的问题是字符串的格式不是很好,我需要在下划线(u)以及空格和其他各种分隔符上拆分它。据我所知,这需要用正则表达式来完成。我的代码如下:Python中的正则表达式拆分,python,python-3.x,Python,Python 3.x,我对Python比较陌生,我正在尝试使用re拆分字符串。 我做了一些研究,遇到了一些例子,我试了一下。它们似乎有效,但有局限性 我正在使用一个与整数值关联的字符串键的字典。我试图对每个单词应用一个权重,该权重取决于与键字符串关联的整数值。我的问题是字符串的格式不是很好,我需要在下划线(u)以及空格和其他各种分隔符上拆分它。据我所知,这需要用正则表达式来完成。我的代码如下: for key, value in sorted_articles.items(): wordList = prin
for key, value in sorted_articles.items():
wordList = print(re.split(r'(_|\s|:|)',key))
当我打印出来时,它会很好地分割所有内容,但它也会打印出分隔符,而不是忽略列表中的分隔符。例如,字符串“Hello\u你好吗”
在列表中存储为[“你好”、“你好”、“怎么样”、“是”、“你”、“你”]
。
我不确定为什么会将分隔符添加到列表中,我不知道如何修复它。提前感谢您的帮助 您可以使用
\W+
字符进行拆分,该字符将拆分所有非字母字符串项,并使用|
专门搜索下划线:
for key, value in sorted_articles.items():
wordList = print(re.split('\W+|_',key))
例如:
s = "Hello_how are you_"
print(re.split("\W+|_", s))
输出:
['Hello', 'how', 'are', 'you', '']
您可以使用
\W+
字符进行拆分,该字符将拆分所有非字母字符串项,并使用|
专门搜索下划线:
for key, value in sorted_articles.items():
wordList = print(re.split('\W+|_',key))
例如:
s = "Hello_how are you_"
print(re.split("\W+|_", s))
输出:
['Hello', 'how', 'are', 'you', '']
使用
r'[\us:][/code>或r'(?:\u124;\ s:)'
。一旦您将捕获组添加到模式中,这些值将成为结果列表的一部分。第一个非常有效,谢谢!不过,你能解释一下后一种解决方案吗?奇怪的是,两者都是等价的。它们只是在\uu
上分开,空格和:
。括号进行类匹配。它与括号内的任何字符匹配。g中没有括号不包含groupin,以?:使其成为非捕获组,而pipes |是组内的or运算符。所以[abc]匹配a或b或。(ab | c)匹配ab或c。使用r'[\s:][/code>或r'(?:|\s |:)
。一旦您将捕获组添加到模式中,这些值将成为结果列表的一部分。第一个非常有效,谢谢!不过,你能解释一下后一种解决方案吗?奇怪的是,两者都是等价的。它们只是在\uu
上分开,空格和:
。括号进行类匹配。它与括号内的任何字符匹配。g中没有括号不包含groupin,以?:使其成为非捕获组,而pipes |是组内的or运算符。所以[abc]匹配a或b或。(ab|c)匹配ab或c。