【问题标题】:Regex: select name and surname正则表达式:选择姓名和姓氏
【发布时间】:2013-09-14 01:33:52
【问题描述】:

我想只选择3个例子中的人名并排除这部分:Nom : MrNom : Mme

Nom :   Mr Name Surname
Nom :   Mr Name1 Name2 Surname
Nom :   Mme Name Surname
Nom :   Mme Name1 Name2 Surname

我正在使用带有生成器的正则表达式:http://gskinner.com/RegExr/ 我将它与 PHP 一起使用 我试过了

(?<=Nom :)(.*)

但它没有给出任何内容,因为它包括我想排除的 Mr 或 Mme 请问有什么帮助吗?

【问题讨论】:

  • 您的目标语言是什么?否则,您将获得无法在您的系统上运行的正则表达式模式。
  • 你好 OmegaMan 我会用 PHP 来使用它

标签: php regex


【解决方案1】:

应该这样做。

Nom\s+:\s+M(?:r|me)\s+(.*)

或者你可以这样做..

(?<=Nom :)\s+M(?:r|me)\s+(.*)

或者让它更短

M(?:r|me)\s+(.*)$

【讨论】:

    【解决方案2】:

    这个正则表达式匹配目标输入:

    ((?<=Nom :   Mr )|(?<=Nom :   Mme )).*$
    

    查看live demo 处理您的示例。

    此正则表达式与其他答案的主要区别在于 整个 匹配项(不仅仅是第 1 组或其他)是您的目标输入。

    【讨论】:

    • 我使用的 iPhone 无法打开该链接(正则表达式使用 flash)。请问可以发到rubular吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多