如何在Python中获得输入中添加换行符的以下输出?

2024-09-30 22:16:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中有以下输入(带换行符)

用Python输入代码:

input_data = 'AB SSP\n,BCD 110/XYZ/A14/ABD1.112\nAB AAD983/*ABC/0003\nAXYZ AB *SSD* 1:23:05\nAADX'
print(input_data) 

Python中的输出代码:(上面输入数据的输出)

AB SSP

,BCD 110/XYZ/A14/ABD1.112

AB ABD983/*ABC/0003

AXYZ AB *SSD* 1:23:05

AADX

我想检查第一行是否存在AB。(独立的“AB”,中间不与任何其他字符(如“ABD983”)混合)。如果找到AB,则打印找到的AB,并按输出的原样打印第3行和第4行,否则跳过检查行。 请让我知道Python中的代码。 提前谢谢


Tags: 代码inputdataabssdabcxyzssp
3条回答

我想你需要的是这样的东西。我试着把它写得简单明了:

import re

input_data = 'AB SSP\n,BCD 110/XYZ/A14/ABD1.112\nAB AAD983/*ABC/0003\nAXYZ AB *SSD* 1:23:05\nAADX'

lines = input_data.split('\n')
for line in lines:
    if re.match('.*(^|\s+)AB(\s+|$).*', line):
        print('AB found')
    else:
        print('-')

说明:

首先我们将文本分解成几行,然后迭代这些行,并使用名为正则表达式或re的模块检查每一行,该模块用于检查字符串中的各种模式

在这里,我指定我想要一个AB,它要么在行首,要么前面有一个空格字符,要么在行尾,要么后面有一个空格字符

这是输出:

AB found
-
AB found
AB found
-

更新问题的答案:

你的解释不是很清楚,但据我所知,你只想检查输入的第一行,如果它包含AB,那么你想打印第三行和第四行。同样,您的解释非常模糊,我几乎可以肯定我遗漏了什么,但无论如何,代码如下:

import re

input_data = 'AB SSP\n,BCD 110/XYZ/A14/ABD1.112\nAB AAD983/*ABC/0003\nAXYZ AB *SSD* 1:23:05\nAADX'

lines = input_data.split('\n')
if re.match('.*(^|\s+)AB(\s+|$).*', lines[0]):
    print(lines[2])
    print(lines[3])

您可能可以尝试下面的代码

input_data = input("Input text")
data=input_data.split(" ")
for i in data:
    if i == "AB":
        print("Whatever you want to print")
    else:
        print("Not there")

这应该是有帮助的

如果要在空格或其他非字母字符之间查找AB,可以使用以下代码:

import re
pattern = re.compile(r'(^|[\W_])AB([\W_]|$)')

print('\n'.join('AB found' if pattern.search(line) else '-' for line in input_data.split('\n')))

\W文字表示所有非字母符号,不包括_符号。因此,将此符号添加到[]字符集中会很有用

相关问题 更多 >