使用Perl和正则表达式查询出文档的指定字符串,如下文档内容查询出全部11=

2025-04-25 19:49:07
推荐回答(1个)
回答1:

  (?<=).*?(?=)

  这里使用宽度断言和勉强模式重复。
  (?<=)表示匹配内容的左边满足表达式
  (?=
)表示匹配内容的右边满足表达式<\item>,
  .*? 表示是勉强模式匹配(即匹配最少的内容),之所以使用勉强模式匹配是因为,如果使用贪婪模式则会出现和您的表达式出现的同样问题。但这个表达式也存在有bug,即如果出现如下的:
  
  
  
  TITLE
  LINK
  T1L1D1

  T2L2D2
  
  
  则匹配就不准确了,不过考虑到xml文档格式的严谨,应不会有这种情况出现,故就不对表达式再进行优化了。

  是可以将匹配的结果读取到数组中去的,不知您使用的何种语言,故无法给出代码。