我想在文本中找到任何单词长度(eq 4),也可以在<strong>
或<h1>
等标签之间找到。之后我想做一种加权这句话。普通单词的得分低于<strong>
之间的单词。但是这些词不应该只是一个更加得分的标签(如强者)。
示例内容
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et dolore <strong>magna aliquyam erat</strong>, sed diam voluptua.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et dolore <strong>magna</strong> aliquyam erat, sed diam voluptua
我可以用regexp这样做,比如查找任何单词并检查preg回调是否在标签内或者如何可能?
非常感谢!
答案 0 :(得分:0)
(?<=\/|<)(\w{4,})(?=>)|\b(\w{4,})
您可以尝试此操作。匹配的Part 1
始终来自代码。匹配的Part 2
将是其他常规字词。
参见演示。
答案 1 :(得分:0)
<\w*>([a-zA-Z0-9 ]{4,})</\w*>
你用这个来标记标签之间的文本,然后你计算该文本中的空格数,知道它有多少单词并给它你的相应权重,你用 {4,}来控制最小长度强>在这种情况下是4或更多
对于普通单词,您只需使用
\w{4,}
这就是全部吗?
哦,你可能想要这样的东西吗?
<\w*>(?<case1>[a-zA-Z0-9 ]{4,})</\w*>|(?<case2>\w{4,})
在case1组中,标签之间有单词,而case2中的单词不在标签之间。顺便说一句,我不确切知道PHP中的捕获组是如何完成的,所以正则表达式可能看起来有点不同而且&#34; /&#34;可能是PHP中的转义字符,因此如果它是
,则需要在它之前使用\