Php 需要一个正则表达式来匹配特定的句子格式

Php 需要一个正则表达式来匹配特定的句子格式,php,javascript,regex,Php,Javascript,Regex,我需要一个正则表达式来匹配一个非常特殊的句子格式。格式如下: word(可包含、()[]&^%和空格)、word(可包含、()[]&^%和空格)、word(可包含、()[]&^%和空格) 所以基本上它是一个词,一个词,一个词,但是每个词都可以包含一些特殊的字符和空格。有人能帮我吗 例如: 各种各样的艺术家,共6人,我建造 这座城市(迈克尔·迈耶) 艾达, 盲人之家/幸运咒,幸运咒 赫克托,奥拉尔,奥拉尔(亚历克斯·皮科内) 混音) 我不确定您是否希望包含将您的句子划分为允许模式的,。如果要将一

我需要一个正则表达式来匹配一个非常特殊的句子格式。格式如下:

word(可包含<代码>、()[]&^%和空格)、word(可包含<代码>、()[]&^%和空格)、word(可包含<代码>、()[]&^%和空格)

所以基本上它是一个词,一个词,一个词,但是每个词都可以包含一些特殊的字符和空格。有人能帮我吗


例如:

  • 各种各样的艺术家,共6人,我建造 这座城市(迈克尔·迈耶)
  • 艾达, 盲人之家/幸运咒,幸运咒
  • 赫克托,奥拉尔,奥拉尔(亚历克斯·皮科内) 混音)

  • 我不确定您是否希望包含将您的句子划分为允许模式的
    。如果要将一个句子匹配三次:

    /^[a-z()[]&^%#\s]+,[a-z()[]&^%#\s]+,[a-z()[]&^%#\s]+$/i
    

    我将使用此解决方案:

    /(?x)([a-z\\d\\s()[\\]&^%#\\/]+),((?1)),((?1))/i
    
    这样你就不必重复你的模式


    对你来说,“单词”是什么?仅限小写字母字符?单词往往不包括空格……好吧,你说得对——那就是一句话,一句话,一句话。它们可以是小写和大写。我认为你的模式描述得不清楚。也许你可以举个例子。@Pavel:那么我猜你想要的和一句话完全一样。。。除非这三个句子必须以某种方式分隔,否则用逗号分隔的句子是什么?我刚刚注意到,您的第二个示例中有一个/,它与您定义的模式不匹配。无需转义所有这些字符;仅在字符类中
    \‍
    ]
    (也取决于位置
    ^
    -
    )是需要转义的特殊字符。所以
    [a-z()[\\]&^%\s]
    就足够了。此外,您应该允许数字。要么使用
    a-z0-9
    ,要么使用更好的
    \w
    。如果第一个单词重复三次,这难道不起作用吗?@Nev Stokes,不是(参见ideone上的代码),它使用子模式。对我来说,这并不是什么新鲜事。你能提供参考吗?(仅在手册中找到
    \1
    )谢谢,非常感谢您的链接。关于PCRE,似乎还有很多我不知道的东西,而且在php.net上没有记录。再次感谢。