簡體   English   中英

使用正則表達式在python中的兩個模式之間提取文本

[英]Extract text between two pattern in python using regex

我正在嘗試提取包括類別(即A,B,C)的所有文本。

A     <some text1> 

B     <some text2> 

C     <some text3> 

但是,當我應用此正則表達式時-

ptrn='\n[A-z]*\t'     

pattern1= '(.*)'+ptrn      

f = re.findall(pattern1,test_doc)      

它給我

f[0] = A     <some text1> 

f[1] = <some text2> 

f[2] = <some text3> 

但我想要 -

f[0] =  A     <some text1>

f[0] =  B     <some text2> 

f[2] =  C     <some text2> 

http://csmining.org/tl_files/Project_Datasets/r8%20r52/r8-test-all-terms.txt

此鏈接包含許多文檔的一些原始文本。 每個文檔具有以下模式:

category<tab><sometext> \n 

因此整個語料庫看起來像這樣:

category<tab><sometext1> \n 

category<tab><sometext2> \n

.

.

我想要

doc[0] = category<tab><sometext1>

doc[1] = category<tab><sometext2>

.
.
and so on

任何答案/提示都將非常有幫助:)

嘗試以下模式:

import re
pattern = r"(\w+)(\t)(.*)(\b)"

說明

  • (\\w+)匹配任何單詞字符一次或多次
  • \\t從字面上匹配制表符
  • (.*)匹配除行終止符之外的所有內容
  • (\\b)是單詞邊界

在regex101上觀看演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM