REGEX展望未来,展望未来

时间:2014-09-24 09:38:24

标签: regex

我想编写一个单一的正则表达式,除了公司就足以捕获所有内容(在示例中只是LTD - 我知道如何扩展它) 例如:

ABC            capture ABC
ABC LTD        capture ABC
ABC LTD UK     capture ABC UK
LTD ABC        capture ABC
LTD UK ABC     capture UK ABC

我在基于JAVA的环境中工作。 到目前为止我有(^.*?)(?=(?:LTD|LIMITED\s*)+)只适用于ABC LTD(甚至不适用于ABC) 这里的任何帮助都将受到大力赞赏。

2 个答案:

答案 0 :(得分:1)

(?!LTD|LIMITED)\b\w+\b

试试这个。看看演示。

http://regex101.com/r/zR2tR4/4

答案 1 :(得分:-1)

不完全了解Java语法,但我确信它有自己的replace和split命令。 认为删除公司缩写然后拆分会更有效率。

代码将在C#中,但我认为将其移至Java

并不困难
// it's not univesal but matches your sample
string newString = Regex.Replace(baseString, "((LTD)|(LIMITED)|(JSC)...)",""); // remove all abbrevations without headache about Look-Forward-Back-And-So-On
string[] companyNames = newString.Split("\n");

无论如何 - 用正则表达式做一些事情 - 尝试简化它并避免扩展功能。