查找由XHTML标题标签包含的低位字词?

时间:2017-02-14 00:22:54

标签: regex pcre

我很好奇是否可以使用独立的REGEX来查找以XHTML标题标记中包含的小写a-z开头的单词。我说"独立"因为我已经用Python ala解决了工作日问题"找到这个,然后这样做"。但我仍然好奇只用REGEX解决问题是否可行。

我不相信这与解析HTML / XHTML"有关。我有大约30K的XHTML行,其中标题中第一个单词后的每个单词都以小写字符开头。我需要把它们做成大写。我可以访问支持Replacement-String Case Conversion的REGEX方言,我只需要捕获实例。

PCRE(PHP)模式下使用regex101.com((\b[a-z])(\w+'?\w+\b))是一种捕获以小写az开头的所有单词的第一个字符的方法:

REGEX finds words that begin with lower-case a-z

这非常接近我所需要的。我已经"得到" REGEX甚至程序化解决方案的查找/替换大写都不会产生完美的解决方案。但它会很快解决大部分最糟糕的问题。

使用(<(h[1-4]>))(.*)(<\/\2)查找XHTML标题开始/结束标记对更容易,然后将它们之间的所有内容捕获为单个无差异字符串:

REGEX finds XHTML heading 1-4

但它找到了那些在我无法解决的无差别字符串中的低句话。我的两个REGEX组件(如前面的屏幕截图所示)似乎总是阻止其他子表达式的操作。

我猜测有一个REGEX构造可以解决这个问题。我无法找到那个构造......

编辑:我想&#34;感谢&#34; &#34;读者&#34;谁没有真正麻烦这个问题,而是反思性地,不假思索地看到了 XHTML ,并且毫无疑问地得出结论,这是关于解析HTML&#34;什么时候都没有。就像在,用XXX代替附带的XHTML标签。你显然认为当你选择下来的选民时,我的信息不足......

1 个答案:

答案 0 :(得分:1)

这个怎么样:

[^<\/](\b[a-z])\w*\b

我捕获一个小写字母前面有一个单词边界\b而没有前面的</来排除HTML标记中的h,并且成功为零或更多单词字符\w*和单词边界\b

这会找到你的正则表达式遗漏的短词(isa)。