簡體   English   中英

Linux中2個包含多行正則表達式的文件與數據模式之間的PCRE模式匹配驗證

[英]PCRE pattern match verification between 2 files containing multi line regex and data patterns in linux

我是PCRE模式匹配的新手。 想知道,如果我有一個包含不同正則表達式模式的文件,則說file1包含一長串的多行模式。 另一個文件,例如file2,包含來自file1的一些模式行(模式數據文件)。

  1. 如何驗證/找出file2中的模式和file1中的模式之間有多少PCRE模式匹配。

  2. 正在與pcretest和pcregrep一起使用,后者僅接受1個模式文件作為源或輸入。 無論如何,想知道是否有使用pcretest或pcregrep工具或其他任何接受2個文件以測試它們之間的pcre模式匹配(此處為file2而非file1)的pcre工具?

還是有某種方法/語法在一個文件中同時傳遞不同的多行正則表達式模式和多行數據模式,以獲取這兩個模式文件之間的pcre匹配?

提前致謝。

感謝讀者的耐心等待,似乎我已經從其他網站找到了解決方案。 這看起來很基礎,但這是我第一次使用模式。

假設file1包含要測試的regex模式,
file2包含要測試的文本模式行。

由於pcretest只能有1個文件作為輸入,因此語法將是,將這兩個文件(file1和file2)附加到文件(例如testfile )中,使得每個regex模式在第一行,並且必須用定界符括起來從下一行開始要測試的文本模式。

如果是多行,則在每個定界的正則表達式模式行下方,保留所有數據模式行。

跳過一條線,然后再次在第二個定界的正則表達式模式行下方保留所有數據模式行。

例如,

file1包含正則表達式模式

Bharat\d{4}   
bharata(\w+)\b

file2包含數據模式

bsgdfr 242  
23egjuy Bharati ytf  
uhouho Bharat567 uhgf  
poiuhgpoij   
ygf bkutgl 657  
ytfui bharatauwa65 rtesrydu  

然后testfile的應創建包含,

/Bharat\d{4}/  
bsgdfr 242  
23egjuy Bharati ytf  
uhouho Bharat567 uhgf  
poiuhgpoij   
ygf bkutgl 657  
ytfui bharatauwa65 rtesrydu  

/\bharata(\w+)\b/  
bsgdfr 242  
23egjuy Bharati ytf  
uhouho Bharat567 uhgf  
poiuhgpoij   
ygf bkutgl 657  
ytfui bharatauwa65 rtesrydu  

現在運行

pcretest [option flags] testfile resultfile  

結果文件中有匹配項。

可以根據需要添加盡可能多的正則表達式模式行和數據模式行。

暫無
暫無

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

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