18910140161

使用正则表达式在HTML标记之间选择单词-堆栈溢出

顺晟科技

2022-10-18 12:41:47

184

感谢您在这里访问我的问题。我正在尝试匹配标签之间的句子。例如:

<块引用>

<代码><;H1>;除了下面讨论的口味,大多数口味都只有一种。同时匹配单词前后的元字符。<代码><;P>;这是因为字符之间的任何位置都不能同时位于单词的开头和结尾。只使用一个运算符使事情对你来说更容易。<代码><;P>;如上所述,字边界是受大多数正则表达式风格的支持。

我试着从每个标签中得到10个单词。输出:

    除了下面讨论的那些,
  • 大多数口味都只有一种
  • 这是因为字符之间的任何位置都不
  • 能如上所述,大多数规则都支持
  • 单词边界

我发现这很棘手。谢谢你的帮助!


顺晟科技:

正如已经在评论中链接的那样,这个网站上最著名的答案之一是关于如何使用正则表达式来解析HTML可能不是一个好主意。要更详细和平衡地了解什么时候这样做是好的,什么时候这样做不是好的,也可以查看这个问题

但简单地说,答案取决于你想要做什么。无论您使用哪种语言,您最好找到一个HTML/XML解析库,并用它提取文本。

我对你的任务到底是什么感到有点困惑,因为你的代码不是有效的HTML,因为<h1>至少需要一个结束标记。但是,如果您确实需要使用正则表达式来执行此操作,您将需要查看单词边界和区间操作符,以限制为10,并且可能需要LookBehind(或只是捕获组)来匹配标记而不返回它。

但是,如果您尝试解析实际的HTML,最好使用HTML解析器来获取标记内容,然后使用字符串运算符获取前10个单词。JavaScript中的一个示例,这有点像作弊,因为您可以免费获得HTML解析,但它可以作为一个简单的示例:

<p>
<代码><;H1>;这是一个H1标记,其中包含一组非常长的文本<;/H1>;<;P>;这里有一个p标签,里面有更多的文本,非常长。<;P>;这里有一个p标签,里面有更多的文本,非常长。<;P>;这里有一个p标签,里面有更多的文本,非常长。<;P>;下面是一个p标记,其中包含更多非常长的文本

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航