我有一句话,例如以下内容:
Diesmal geht es um den GenitivnachPräpositionenamBeispiel von“wegen”:Wegen des Sturmes oder wegen dem Sturm?
在这句话中,我想在句子中间匹配单词am,about。但是,我也希望在这个词之前和之前匹配5个单词。这样做的正则表如下:
.+?\s+.+?\s+.+?\s+.+?\s+.+?am.+?\s+.+?\s+.+?\s+.+?\s+.+?\s+
但这看起来很笨拙。我的问题是有没有办法指定。+?\ s +部分的重复次数。有人可以帮我吗?我为此目的使用PHP。
答案 0 :(得分:4)
使用花括号:
a{2} // two a's
a{1,} // one or more a's
a{1,3} // between 1 and 3 a's
对复杂模式使用括号:
(foo){2,3} // two or three foo's
答案 1 :(得分:2)
(\s+.+?){3}
重复最后一项#times。因此\s+.+?\s+.+?\s+.+?
相当于(.+?\s+){5}am(.+?\s+){5}
所以你会使用<body>
<div id="fixed">
<p>Springathing</p>
<ul id="nav">
<li><a href="#about">About</a></li>
<li><a href="portfolio">Portfolio</a></li>
<li><a href="contact">Contact</a></li>
</ul>
</div>
<div id="overall">
<div id="about">
</div>
<div id="portfolio">
</div>
<div id="contact">
</div>
<div id="pageinfo">
</div>
<div id="copyright">
</div>
</div>
</body>