正規表示式練習

2021-08-04 14:46:06 字數 1877 閱讀 3884

取出其中的參考文獻,注意到每行只有乙個參考文獻,所以直接用

re.search(regex,line)

import re

with open("test2","r") as f:

lines = f.readlines()

regex = re.compile(r'\([a-z].*\)')

reg = open("refer.txt","w")

for i in lines:

m = regex.search(i)

if m:

reg.writelines(m.group(0)+"\n")

reg.close()

去掉參考文獻,使用regex.sub(『代替後的』,』代替前的』)

import re

with open("test2","r") as f:

lines = f.readlines()

regex = re.compile(r'\([a-z].*\)')

word = open("word.txt","w")

for i in lines:

d = regex.sub("",i)

word.write(d)

word.close()

把所有的行合成一行,再做這個題。

思路還是把未知的問題轉化為已知的問題來解答

1.還是取出參考文獻。

先用) 把整段文字切割成多行。但是有些不是參考文獻的地方也被切開了

(also known as her2/neu)

沒關係,再用之前的正則查詢匹配,不過這個正則不用帶)後括號了

import re

reg = open("c:/2-1.txt","w")

with open("c:/test2.1","r") as f:

lines = f.readlines()

lines = lines[0]

#print(lines)

regex = re.compile(r'\([a-z][a-z].*')

regex1 = re.compile(r'\)\w')

lines = regex1.split(lines)

print(lines)

for i in lines:

m = re.search(regex,i)

if m:

print(m.group(0))

reg.writelines(m.group(0).strip("\(")+"\n")

reg.close()

import re

reg = open("c:/2-2.txt","w")

with open("c:/test2.1","r") as f:

lines = f.readlines()

lines = lines[0]

#print(lines)

regex = re.compile(r'\([a-z][a-z].*')

regex1 = re.compile(r'\)')

lines = regex1.split(lines)

d = ''

for i in lines:

i = regex.sub("",i)

if'('in i:

i += ')'

d += i

print(d)

reg.write(d)

reg.close()

正規表示式練習

1 匹配一段文字中的每行的郵箱 y 123 qq.comaaa 163.combbb 126.comasdfasfs33333 adfcom import reret re.findall w qq 163 126 com y print ret 123 qq.com aaa 163.com bbb...

正規表示式練習

字元描述 匹配前面的子表示式零次或多次。例如,zo 能匹配 z 以及 zoo 等價於。匹配前面的子表示式一次或多次。例如,zo 能匹配 zo 以及 zoo 但不能匹配 z 等價於 匹配前面的子表示式零次或一次。例如,do es 可以匹配 do does 中的 does doxy 中的 do 1 va...

正規表示式練習

一 身份證號碼匹配的正規表示式編寫 453555 1900 1201 0087 453555 1900 1201 008x 需要用到分組的概念 1 前6位,區域的編號 2 接下來的4位 出生年 3 接下來的4位 月日 4 最後四位 5 倒數第二位性別 最後一位為x 簡單的身份證的正規表示式 d 0 ...