如何在python中使用split-from-regex并保留split-word?
有没有一种方法可以在不丢失用于拆分的单词或字符的情况下使用拆分函数 例如:如何在python中使用split-from-regex并保留split-word?,python,regex,string,split,Python,Regex,String,Split,有没有一种方法可以在不丢失用于拆分的单词或字符的情况下使用拆分函数 例如: import re x = '''\ 1. abcde. 2. fgh 2.5 ijk. 3. lmnop ''' print(x) listByNum = re.split(r'\d\.\D', x) print(listByNum) import re x = '''\ I love stackoverflow. I love food.\nblah blah blah. ''' print(
import re
x = '''\
1.
abcde.
2.
fgh 2.5 ijk.
3.
lmnop
'''
print(x)
listByNum = re.split(r'\d\.\D', x)
print(listByNum)
import re
x = '''\
I love stackoverflow. I love food.\nblah blah blah.
'''
print(x)
listBySentences = re.split(r'\.', x)
print(listBySentences)
我想保留列表中的数字
另一个例子:
import re
x = '''\
1.
abcde.
2.
fgh 2.5 ijk.
3.
lmnop
'''
print(x)
listByNum = re.split(r'\d\.\D', x)
print(listByNum)
import re
x = '''\
I love stackoverflow. I love food.\nblah blah blah.
'''
print(x)
listBySentences = re.split(r'\.', x)
print(listBySentences)
没有很好的文档记录,但是可以在有问题的表达式周围使用括号:
import re
x = '''\
1.
abcde.
2.
fgh 2.5 ijk.
3.
lmnop
'''
print(x)
listByNum = re.split(r'(\d\.\D)', x)
print(listByNum)
# ['', '1.\n', 'abcde.\n', '2.\n', 'fgh 2.5 ijk.\n', '3.\n', 'lmnop\n ']
要在事后清理数据,您可以使用列表理解,如下所示:
listByNum = [num.strip() for num in re.split(r'(\d\.\D)', x) if num]
# ['1.', 'abcde.', '2.', 'fgh 2.5 ijk.', '3.', 'lmnop']
要将数字保留在拆分的元素中,可以使用支持空字符串拆分的较新模块:
import regex as re
x = same string as above
listByNum = [num.strip() for num in re.split(r'(?V1)(?=\d\.\D)', x) if num]
# ['1.\nabcde.', '2.\nfgh 2.5 ijk.', '3.\nlmnop']
没有很好的文档记录,但可以在相关表达式周围使用括号:
import re
x = '''\
1.
abcde.
2.
fgh 2.5 ijk.
3.
lmnop
'''
print(x)
listByNum = re.split(r'(\d\.\D)', x)
print(listByNum)
# ['', '1.\n', 'abcde.\n', '2.\n', 'fgh 2.5 ijk.\n', '3.\n', 'lmnop\n ']
要在事后清理数据,您可以使用列表理解,如下所示:
listByNum = [num.strip() for num in re.split(r'(\d\.\D)', x) if num]
# ['1.', 'abcde.', '2.', 'fgh 2.5 ijk.', '3.', 'lmnop']
要将数字保留在拆分的元素中,可以使用支持空字符串拆分的较新模块:
import regex as re
x = same string as above
listByNum = [num.strip() for num in re.split(r'(?V1)(?=\d\.\D)', x) if num]
# ['1.\nabcde.', '2.\nfgh 2.5 ijk.', '3.\nlmnop']
(?=\d\.\d)|(?@sln:请注意,您不能在python的re
模块中对空字符串进行拆分-您需要使用regex
。@Jan-请注意,您不能对空字符串进行拆分
您能给我一个示例,说明这与我的注释有什么关系吗?(?=\d\.\d)|(?@sln:注意,在python的re
模块中,您不能在空字符串上拆分-您需要使用regex
。@Jan-注意,您不能在空字符串上拆分
您能给我一个例子说明这与我的注释有什么关系吗?数字在单独的元素中,我能把它们放在一起吗['1.abcde.'、'2.fgh 2.5 ijk.'、'3.lmnop']
数字在单独的元素中,我可以把它们放在一起吗。.['1.abcde.'、'2.fgh 2.5 ijk.'、'3.lmnop']