|
|
1
644
|
|
2
523
正则表达式有理的情况:
|
|
|
3
436
另一种不使用正则表达式的快速方法是首先替换字符,如下所示:
|
|
|
4
356
在字面上要求的问题中(拆分为多个可能的分隔符,相反,许多答案拆分为任何不是单词的东西,这是不同的)。因此,这是标题中问题的答案,它依赖于Python的标准和高效
哪里:
这
此外,此解决方案不受其他一些解决方案中单词中非ASCII字符问题的影响(请参阅 ghostdog74's answer ).
这
|
|
5
58
|
|
|
6
41
专业提示:使用
一些证据。..
最后,我们使用
|
|
|
7
29
我也有类似的困境,不想使用“re”模块。
|
|
|
8
13
选项1-re.sub我惊讶地发现,到目前为止还没有答案 re.sub(...)
这还有几行,但它的优点是可以扩展,而不必检查是否需要转义正则表达式中的某个字符。
如果能够将str.replace映射到字符串,那就太好了,但我认为这不能用不可变的字符串来实现,虽然映射到字符列表是可行的,但对每个字符进行每次替换听起来都太过分了。(编辑:功能示例见下一个选项。)
(在Python 2中,
|
|
|
9
10
然后,这变成了一个三行:
解释
这就是Haskell中所谓的List monad。单子背后的想法是,一旦“在单子里”,你就“留在单子里”直到有什么东西把你带走。例如,在Haskell中,假设你映射python
你可以把它抽象成一个函数
这种方法的优点:
|
|
|
10
7
我喜欢
sep.__包含__
分组依据 获取我们的字符串和函数。它使用该函数将字符串分组:每当函数的值发生变化时,都会生成一个新的组。所以, sep.__包含__ 这正是我们所需要的。 分组依据 “如果不是k” 我们用分隔符过滤掉组(因为 sep.__包含__ 加入 将其转换为字符串)。 加入 表达式将变为惰性,因为每个组都是一个迭代器) |
|
|
11
6
|
|
|
12
5
试试这个:
这将打印
|
|
|
13
4
在Python 3中,您可以使用以下方法 PY4E - Python for Everybody .
你可以看到“标点符号”:
有关更多信息,请参阅: |
|
|
14
4
使用pandas的series.str.split方法可以获得相同的结果,而不是使用re模块函数re.split。 首先,使用上述字符串创建一个系列,然后将该方法应用于该系列。
参数 拍 输出如下:
|
|
|
15
3
|
|
|
16
3
|
|
|
17
2
首先,我不认为你的意图是在分割函数中实际使用标点符号作为分隔符。你的描述表明,你只是想消除结果字符串中的标点符号。 我经常遇到这种情况,我通常的解决方案不需要重新考虑。 一个带列表理解的线性lambda函数:
作为一个传统函数,这仍然只有两行具有列表理解(除了
它也会自然地保留缩写和连字符单词的完整性。您始终可以使用
不带Lambda或列表理解的通用函数
当然,您也可以将lambda函数推广到任何指定的字符串。 |
|
|
18
2
它似乎工作得很好,至少对于下面的例子来说是这样。
|
|
|
19
1
nltk ).
a lot of fun stuff 一旦您获得令牌,就可以使用nltk包的其余部分。 |
|
|
20
1
@ghostdog74启发了我,也许有人觉得我的解决方案有用
在空格处输入内容,若不想在空格处拆分,请使用相同的字符进行拆分。 |
|
|
21
1
因此,对于您的问题,首先编译模式,然后对其执行操作。
|
|
|
22
1
以下是答案,并附有一些解释。
或者在一行中,我们可以这样做:
|
|
|
23
1
创建一个函数,将两个字符串(要拆分的源字符串和分隔符的splitlist字符串)作为输入,并输出一个拆分单词列表:
|
|
24
1
我喜欢pprzemek的解决方案,因为它不假设分隔符是单个字符,也不试图利用正则表达式(如果分隔符的数量太长,正则表达式将无法很好地工作)。 为了清楚起见,这里有一个更易读的上述解决方案版本:
|
|
25
0
以下是我与多名脱口者的分手经历:
|
|
|
26
0
|
|
27
0
|
|
|
28
0
|
|
|
29
0
|
|
|
30
0
|