读取文件并将结果存储在字符串中后,没有新行字符

时间:2016-01-12 22:38:22

标签: python regex string newline

在我从文件中读取并将结果存储到字符串后,有没有办法检测新行字符?这是代码:

with open("text.txt") as file:
    content_string = file.read()
    file.close()

re.search("\n", content_string)

content_string如下所示:

Hello world!
Hello WORLD!!!!!

我想在第一行" Hello world!"之后提取新行字符。这个角色在这一点上是否存在?

3 个答案:

答案 0 :(得分:1)

根据Jongware评论,您执行的正则表达式搜索会找到换行符。你只需要使用那个结果。

来自re module documentation

re.search(pattern,string,flags = 0)

  

扫描字符串,查找常规的第一个位置   表达式模式产生匹配,并返回相应的   MatchObject实例。如果字符串中没有位置匹配则返回None   模式;请注意,这与查找零长度不同   匹配字符串中的某个点。

在代码方面,检查转换为:

with open("text.txt") as file:
    content_string = file.read()
    file.close()

m = re.search("\n", content_string)
if m:
    print "Found a newline"
else:
    print "No newline found"

现在,您的文件可能包含" \ r"而不是" \ n":它们的打印可能相同,但正则表达式不匹配。在这种情况下,请尝试尝试此测试,替换代码中的正确行:

m = re.search("\n", content_string)

使用:

m = re.search("[\r\n]", content_string)

将寻找。

答案 1 :(得分:1)

  

有没有办法在我读完后检测新的行字符   文件并将结果存储到字符串中?

如果我理解正确,您希望将多行连接成一个字符串。 输入:

) [0::2], (

test.py:

if not len(

输出:

) % 2 else 'm' +

答案 2 :(得分:0)

  

如果我有更多行,我想检测第一行怎么样?   新队?出于某种原因,在我的文本中它不会检测到它。

with open("text.txt") as f:
    first_line = f.readline()
    print(first_line)