Regex 如何指定正则表达式模式的重复次数
我有一句话,例如:Regex 如何指定正则表达式模式的重复次数,regex,syntax,Regex,Syntax,我有一句话,例如: .+?\s+.+?\s+.+?\s+.+?\s+.+?am.+?\s+.+?\s+.+?\s+.+?\s+.+?\s+ 我们的祖先是谁?我们的祖先是谁 在这个句子中,我想在句子的中间匹配“AM”这个词。但是,我还想在这个单词前后匹配5个单词。我这样做的正则表达式如下: .+?\s+.+?\s+.+?\s+.+?\s+.+?am.+?\s+.+?\s+.+?\s+.+?\s+.+?\s+ 但这看起来相当笨拙。我的问题是,是否有办法指定.+?\s+部分的重复次数。有人能帮我吗
.+?\s+.+?\s+.+?\s+.+?\s+.+?am.+?\s+.+?\s+.+?\s+.+?\s+.+?\s+
我们的祖先是谁?我们的祖先是谁
在这个句子中,我想在句子的中间匹配“AM”这个词。但是,我还想在这个单词前后匹配5个单词。我这样做的正则表达式如下:
.+?\s+.+?\s+.+?\s+.+?\s+.+?am.+?\s+.+?\s+.+?\s+.+?\s+.+?\s+
但这看起来相当笨拙。我的问题是,是否有办法指定.+?\s+部分的重复次数。有人能帮我吗?为此,我使用PHP。使用大括号:
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
请使用大括号:
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
{}重复最后一项的次数。所以\s++?{3}等价于\s++?\s++?\s++
因此您将使用.+?\s+{5}am.+?\s+{5}{}重复最后一项的次数。所以\s++?{3}等价于\s++?\s++?\s++
所以你会用+?\s++{5}am.+?\s++{5}你用的是什么编码语言?我试着在PHP程序中这样做你用的是什么编码语言?我试着在PHP程序中这样做括号是我弄错的部分,谢谢。括号是我弄错的部分,谢谢。