linux中包含多行正则表达式和数据模式的2个文件之间的PCRE模式匹配验证



我对PCRE模式匹配不熟悉。想知道,那如果我有一个文件包含不同的正则表达式模式,说file1包含多行模式的长列表。另一个文件,比如file2,包含来自file1(模式数据文件)的一些模式行。

  1. 如何验证/找出file2中的模式和file1中的模式之间有多少PCRE模式匹配。

  2. 正在使用pcretest和pcregrep,它们只接受一个模式文件作为源或输入。想知道是否有使用pcretest或pcregrep工具或任何其他接受2个文件的pcre工具来测试它们之间的pcre模式匹配(这里file2超过file1) ?

或者无论如何/语法传递两个,不同的多行正则表达式模式和多行数据模式在一个文件中获得这两个模式文件之间的pcre匹配?

感谢读者的耐心,似乎我已经从其他网站找到了解决方案。这看起来很基础,但这是我第一次使用模式。

假设file1包含要测试的正则表达式模式,
file2包含要测试的文本模式行。

因为pcretest只能有一个文件作为输入,所以语法是这样的:附加这两个文件(file1 &file2)在一个文件(比如testfile)中,每个正则表达式模式位于第一行,必须用分隔符括起来要在下一行开始测试的文本模式

如果多行,则在每个正则表达式模式行下面分隔,保留所有数据模式行。

跳过一行,并在第二个分隔的正则表达式模式行以下保留所有数据模式行。

file1包含正则表达式模式

Bharatd{4}   
bharata(w+)b

file2包含数据模式

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

那么testfile应该被创建来包含

/Bharatd{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  

结果文件有匹配项。

可以根据需要添加任意多的regex模式行和数据模式行。

相关内容

最新更新