我很好奇是否可以使用独立的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甚至程序化解决方案的查找/替换大写都不会产生完美的解决方案。但它会很快解决大部分最糟糕的问题。
使用(<(h[1-4]>))(.*)(<\/\2)
查找XHTML标题开始/结束标记对更容易,然后将它们之间的所有内容捕获为单个无差异字符串:
但它找到了那些在我无法解决的无差别字符串中的低句话。我的两个REGEX组件(如前面的屏幕截图所示)似乎总是阻止其他子表达式的操作。
我猜测有一个REGEX构造可以解决这个问题。我无法找到那个构造......
编辑:我想&#34;感谢&#34; &#34;读者&#34;谁没有真正麻烦读这个问题,而是反思性地,不假思索地看到了 XHTML ,并且毫无疑问地得出结论,这是关于解析HTML&#34;什么时候都没有。就像在,用XXX代替附带的XHTML标签。你显然认为当你选择下来的选民时,我的信息不足......
答案 0 :(得分:1)
这个怎么样:
[^<\/](\b[a-z])\w*\b
我捕获一个小写字母前面有一个单词边界\b
而没有前面的<
或/
来排除HTML标记中的h
,并且成功为零或更多单词字符\w*
和单词边界\b
。
这会找到你的正则表达式遗漏的短词(is
,a
)。