用正则表达式php捕获
我被下面的正则表达式卡住了用正则表达式php捕获,php,regex,regex-group,Php,Regex,Regex Group,我被下面的正则表达式卡住了 (genre|style).*?(\.|\:|\||\>|\[|\-) 我试图捕捉以下示例中的所有类型,而不是后面的垃圾。。我可以得到一些,但不是全部。你能给我解释一下如何捕捉所有的吗?例如,线条类型:……嘻哈给我带来了麻烦。它还可以捕捉游戏时间。。如果发现多个空间,如何停止捕获 GENRE : Pop cult speech genre......: Thrash Metal crap1 crap2 genre : House
(genre|style).*?(\.|\:|\||\>|\[|\-)
我试图捕捉以下示例中的所有类型,而不是后面的垃圾。。我可以得到一些,但不是全部。你能给我解释一下如何捕捉所有的吗?例如,线条类型:……嘻哈给我带来了麻烦。它还可以捕捉游戏时间。。如果发现多个空间,如何停止捕获
GENRE : Pop cult speech
genre......: Thrash Metal crap1 crap2
genre : House
style: dance
genre.....: house
genre 0djdjd f : House
style | elektronic house
genre > Metal Hard rock
GENRE:........Hip-Hop PLAYTiME:....73:31
Genre..... - Indie Year - 2019
STYLE: Folk
GENRE........[ Euro-House crap crap crap
Genre : Hard Rock crap crap
您可以使用此正则表达式捕获给定文本中的所有类型/样式
(?:genre|style)(?:\s+\w*)*[ :.|>[-]+\K[a-zA-Z]+(?:[ -][a-zA-Z]+)*
说明:
-按字面意思匹配(?:流派|风格)
或流派
风格
-匹配可选文本,这仅适用于示例(?:\s+\w*)*
,否则确实不需要此部分类型0djd f:House
-匹配出现在类型/样式文本之前的一个或多个字符[:.|>[-]+
-重置迄今为止匹配的内容\K
-匹配按字母顺序排列的体裁文本,可以是单个空格或连字符分隔的文本[a-zA-Z]+(?:[-][a-zA-Z]+)*
让我知道这是否正是您想要的。为什么有
(体裁风格)
您是否在寻找以这两个开头的行?您在想要的行和之后的垃圾行之间没有明确的界限。您必须确定一个不同的分隔符。如果您不能这样做,那么它就不能被分隔开!这很好!谢谢您的解释!我永远无法确定。@user1997874:很高兴提供帮助。也请考虑接受我的答案,如果它解决了你的问题。