如何使用正则表达式拆分名称SurNames和短名称

时间:2013-09-26 12:06:43

标签: c# regex parsing

例如,我有这些句子:

  1. Kaip direktoriu yra sake V.Adamkus man reikia kadperimtuE.Žlabysvisa valdyma。
  2. Kaip direktoriu yra sake V.A.男人reikia kad e.z. (EimantasŽlabys)perimtu B.A.签证valdyma。
  3. Kaip direktoriu yra缘故Valdas Mykolas Brazauskas男子reikia kad perimtu签证valdyma A.B ..
  4. 我现在正试图从句子中解析这些类型的单词:

    1. V.Adamkus,E.Žlabys
    2. V.A。,B.A。,A.B。
    3. EimantasŽlabys
    4. Valdas Mykolas Brazauskas
    5. 我写了正则表达式:

       ([A-Ž]{1}\.[A-Ž]{1}\.)|([A-Ž]\s[A-Ž])| ([A-Ž]{1}\.[A-Ž]{1}[a-ž]{1,})
      

      但他不使用“EimantasŽlabys”类型的单词...我在正则表达式中做错了以找到那些单词的句子? :/

1 个答案:

答案 0 :(得分:-1)

我不喜欢这种外观,但我认为这可以解决你的例子:

 ([A-Ž]{1}\.[A-Ž]{1}\.)|([A-Ž]\s[A-Ž])|([A-Ž]{1}\.[A-Ž]{1}[a-ž]{1,}|([A-Ž]{1}[a-ž]{1,}\s[A-Ž]{1}[a-ž]{1,})|([A-Ž]{1}[a-ž]{1,}\s[A-Ž]{1}[a-ž]{1,}\s[A-Ž]{1}[a-ž]{1,}))

事实上,我认为你不能以可靠的方式用正则表达式解析所有名称,除非你事先知道所有这些名字的格式。