如何编写用于验证和更正名称字符串的正则表达式?

时间:2017-02-28 00:28:33

标签: regex

我正在使用pcre正则表达式,而我正在尝试清理邮件的列表名称。

我试图验证并执行以下规则:

  1. 名称字符串以大写字母首字母开头,后跟句点和空格。
  2. 最后关注空格不超过18个字符,最后没有空格。
  3. 我在此处提供了一些示例:Example Name Strings

    1. J. Doe
    2. J Doe
    3. J.  Doe
    4. J  Doe   
    5. J. Doe
    
    1. 数字1是有效的名称字符串
    2. 数字2缺少第一个首字母后的句号
    3. 数字3在此期间后有多个空格。
    4. 4号没有句号,句号后有两个空格,末尾有额外的空格。
    5. 数字5在名称字符串
    6. 的末尾有空格

      第一个字符串符合所有条件,但所有其他标准符合一个原因(没有句号,额外空格等)或其他标准。

      正则表达式是否可以采用这五个名称字符串,并使其返回5个相同的有效名称字符串,如数字1。

      我尝试使用条件正则表达式,但发现这是一个死胡同。

1 个答案:

答案 0 :(得分:1)

对于示例案例,您可以执行s/^\s*(\w)\w*\W+(\w+)/\1. \2/

Demo