首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配地址的正则表达式

匹配地址的正则表达式
EN

Stack Overflow用户
提问于 2012-09-23 09:22:54
回答 2查看 130关注 0票数 0

下面有一组字符串要搜索:

1大学神经科。新墨西哥州,阿尔伯克基,北部;2摩尔。医学博士贝勒上校,休斯顿,德克萨斯;3精神病学,大学。德克萨斯西南医学大学的。德克萨斯州达拉斯;4 4Clin。Erasmus大学将军。医学。Ctr.,鹿特丹,荷兰;5人类基因,埃默里大学,亚特兰大,GA

上面是一组地址,它以一个数字(用于将其链接到个人).Need开始,将所有地址搜索为:

1大学神经科。新墨西哥州阿尔伯克基州 2 2Mol。医学贝勒上校,休斯顿,德克萨斯州 3大学精神病学。德克萨斯西南医学大学的。德州达拉斯Ctr. 4 4Clin。ErasmusUniv.医学。荷兰鹿特丹 5人类基因,Emory Univ.Atlanta,GA

我写了下面的Regex:

代码语言:javascript
复制
\d\w+,*

它只匹配一个数字,后面跟着一个单词。我如何修改它.Please建议有更好的方法。

我如何用(最后一个数字)做同样的事情:

*X. ZHAO1,W. GUO1,A. M. ALLAN1,R. ZONG2,L. ZHANG1,E. B. JOHNSON1,E. G. SCHALLER1,A. C. MURTHY1,S. L. GOGGIN1,2 1,2,A. EISCH3,4 3,4,B. A.介形虫4,5,D. L. NELSON2,3 2,3,P. JIN5;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-23 10:07:38

搜索似乎很复杂。我从上面的理解中了解到,字符串将被搜索并返回结果。

我是根据下面的字符串来做的

1大学神经科。新墨西哥州阿尔伯克基州

这是代码片段。

代码语言:javascript
复制
using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      string txt="1Dept Neurosci, The Univ. of New Mexico, ALBUQUERQUE, NM ";

      string re1="(\\d+)";  // Integer Number 1
      string re2="((?:[a-z][a-z]+))";   // Word 1
      string re3=".*?"; // Non-greedy match on filler
      string re4="((?:[a-z][a-z]+))";   // Word 2
      string re5="(,)"; // Any Single Character 1
      string re6="(.*?),";  // Command Seperated Values 1

      Regex r = new Regex(re1+re2+re3+re4+re5+re6,RegexOptions.IgnoreCase|RegexOptions.Singleline);
      Match m = r.Match(txt);
      if (m.Success)
      {
            String int1=m.Groups[1].ToString();
            String word1=m.Groups[2].ToString();
            String word2=m.Groups[3].ToString();
            String c1=m.Groups[4].ToString();
            String csv1=m.Groups[5].ToString();
            Console.Write("("+int1.ToString()+")"+"("+word1.ToString()+")"+"("+word2.ToString()+")"+"("+c1.ToString()+")"+"("+csv1.ToString()+")"+"\n");
      }
      Console.ReadLine();
    }
  }
}

还有一件事。如果您需要生成regex并搜索它,则可能需要签出

如果这有帮助,请告诉我。

编辑

代码语言:javascript
复制
using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      string txt="X. ZHAO1,";

      string re1="((?:[a-z][a-z0-9_]*))";   // Variable Name 1
      string re2="(\\.)";   // Any Single Character 1
      string re3="(\\s+)";  // White Space 1
      string re4="((?:[a-z][a-z0-9_]*))";   // Variable Name 2
      string re5="(,)"; // Any Single Character 2

      Regex r = new Regex(re1+re2+re3+re4+re5,RegexOptions.IgnoreCase|RegexOptions.Singleline);
      Match m = r.Match(txt);
      if (m.Success)
      {
            String var1=m.Groups[1].ToString();
            String c1=m.Groups[2].ToString();
            String ws1=m.Groups[3].ToString();
            String var2=m.Groups[4].ToString();
            String c2=m.Groups[5].ToString();
            Console.Write("("+var1.ToString()+")"+"("+c1.ToString()+")"+"("+ws1.ToString()+")"+"("+var2.ToString()+")"+"("+c2.ToString()+")"+"\n");
      }
      Console.ReadLine();
    }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2012-09-23 09:29:14

您需要的简单regex (以数字开头):

代码语言:javascript
复制
\d+[^\d]+

解释:

代码语言:javascript
复制
\d+                      digits (0-9) 
                         (1 or more times, matching the most amount possible)

[^\d]+                   any character except: digits (0-9) 
                         (1 or more times, matching the most amount possible)

以及一个示例代码:

代码语言:javascript
复制
var strInput = "1Dept Neurosci, The Univ. of New Mexico, ALBUQUERQUE, NM; 2Mol. and Human Genet., Baylor Col. of Med., Houston,, TX; 3Psychiatry, Univ. of Texas Southwestern Med. Ctr., Dallas, TX; 4Clin. Genet., Erasmus Univ. Med. Ctr., Rotterdam, Netherlands; 5Human Genet., Emory Univ., Atlanta, GA";

var adresses = new List<string>();

foreach (Match match in Regex.Matches(strInput, @"\d+[^\d]+"))
{
    adresses.Add(match.Value);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12551135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档