Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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,基本上,我想把下面的字符串分成两个单独的字符串,这样: 输入: 'LIPCIUS,A.接地至3b(1-2 FBF);亚扪人前进到第二位。莫贝格挥棒三振(2-2 BSSFBS)。' 输出: [LIPCIUS,A.接地到3b(1-2 FBF);阿蒙斯前进到第二。”, “莫贝格三振挥杆(2-2个BSSFBS)。” 我的新句子总是以大写字母开头(即球员的名字)。下面是我尝试使用的代码: import re string = 'LIPCIUS, A. grounded out to 3b (1-2 FB

基本上,我想把下面的字符串分成两个单独的字符串,这样:

输入: 'LIPCIUS,A.接地至3b(1-2 FBF);亚扪人前进到第二位。莫贝格挥棒三振(2-2 BSSFBS)。'

输出: [LIPCIUS,A.接地到3b(1-2 FBF);阿蒙斯前进到第二。”, “莫贝格三振挥杆(2-2个BSSFBS)。”

我的新句子总是以大写字母开头(即球员的名字)。下面是我尝试使用的代码:

import re

string = 'LIPCIUS, A. grounded out to 3b (1-2 FBF); AMMONS advanced to second. MOBERG struck out swinging (2-2 BSSFBS).'
x = re.findall("[A-Z].*?[\.!?]", string, re.DOTALL)
print(x)
我的代码当前输出以下内容,列表中的第一个字符串不准确:

['LIPCIUS, A.', 'FBF); AMMONS advanced to second.', 'MOBERG struck out swinging (2-2 BSSFBS).']
it should be ['LIPCIUS, A. grounded out to 3b (1-2 FBF); AMMONS advanced to second.','MOBERG struck out swinging (2-2 BSSFBS).']

下面的正则表达式应该适用于您,添加了大写字母或结尾的可选字符
$
后跟
,以避免在
A.
B.

import re
string = 'LIPCIUS, A. grounded out to 3b (1-2 FBF); AMMONS advanced to second. MOBERG struck out swinging (2-2 BSSFBS).'
x = re.findall("[A-Z].*?[\.!?]\s?(?=[A-Z]|$)", string, re.DOTALL)
# ['LIPCIUS, A. grounded out to 3b (1-2 FBF); AMMONS advanced to second. ', 'MOBERG struck out swinging (2-2 BSSFBS).']

下面的正则表达式应该适用于您,添加了大写字母或结尾的可选字符
$
后跟
,以避免在
A.
B.

import re
string = 'LIPCIUS, A. grounded out to 3b (1-2 FBF); AMMONS advanced to second. MOBERG struck out swinging (2-2 BSSFBS).'
x = re.findall("[A-Z].*?[\.!?]\s?(?=[A-Z]|$)", string, re.DOTALL)
# ['LIPCIUS, A. grounded out to 3b (1-2 FBF); AMMONS advanced to second. ', 'MOBERG struck out swinging (2-2 BSSFBS).']
它只是不包括每个想要的输出项目后的点,但我想它不会打扰你


它只在每个想要的输出项后面不包括点,但我想它不会打扰您。

所以您希望将AMMONS提升到第二个。作为另一个字符串?就我而言,如果它保留在第一个字符串中就可以了。我只是想把字符串分成两个句子,其中一个新的句子是通过字符序列来识别的。A'或'。B',以防万一,就是一个句号,后跟一个空格,后跟一个大写字母。然而,我很好奇,我想作为一种替代选择,你将如何实现这一目标。试着用一个问题尽可能多地学习!也许你可以告诉我们什么是预期的输出,以使其清晰。预期的输出已包含在内,因此你希望将弹药提升到第二个。作为另一个字符串?就我而言,如果它保留在第一个字符串中就可以了。我只是想把字符串分成两个句子,其中一个新的句子是通过字符序列来识别的。A'或'。B',以防万一,就是一个句号,后跟一个空格,后跟一个大写字母。然而,我很好奇,我想作为一种替代选择,你将如何实现这一目标。试着用一个问题尽可能多地学习!也许你可以告诉我们什么是预期的输出,以使其清晰。预期的输出已经包括在内。非常好,正是我所需要的。谢谢太好了,正是我需要的。谢谢谢谢这同样有效,正如您所提到的,唯一的区别是句点不包括在第一个字符串中。
re.split(r')(?我如何修改您上一条注释中的语法,以解释句点后跟空格后跟数字的情况,例如“.0”或“.3”?类似于:re.split(r')(?事实上,我已经解决了。这是有效的:re.split(r'[.][…](?=[A-Z]+\b)|[.][…](?=[0-9]+\b]),谢谢!这也是有效的,正如你提到的,唯一的区别是句点不包括在第一个字符串中。
re.split(r'(?我将如何修改您上一条评论中的语法,以解释以下情况:句点后跟空格后跟数字,例如“.0”或“.3”?类似于:re.split(r’(?事实上,已经解决了。这是有效的:re.split(r’[.])(?=[a-Z]+\b)|[.][(?=[0-9]+\b]),s)