正则表达式从文件中获取组

时间:2013-04-17 14:58:21

标签: regex

My String看起来像:

Especificação do Título

GRND3 - GRENDENE

GRND3 - GRENDENE

POSI3 - POSITIVO INF

我需要在3个独立的组中获得GRND3,GRND3,POSI3。

有什么表达方式可以轻松完成吗?

1 个答案:

答案 0 :(得分:1)

未指定特定语言的问题是^可能意味着开始行或文本的开头。

如果^表示开头行

"^(\w+) -"

应该涵盖它。然后你得到第一组(再次是语言特定的)。

如果^表示文字开头(也适用于上述情况):

在不同的系统上有不同的行分隔符,但通常这应该有效:

"\n(\w+) -"

再次获得第一组。

请注意,我假设您要获取的字符串仅包含字母和数字,在这种情况下\w+(表示一个或多个(+)字符(字母或数字) )此字符串后跟一个空格,然后是-

不确定“3个分离的群组”是什么意思,你通常只是遍历所有的匹配,但是如果你想在1个正则表达式中匹配它们,那么这样的事情应该这样做:

"\n(\w+) - (?:\w|\s)*\r?\n(\w+) - (?:\w|\s)*\r?\n(\w+) -"

虽然这不够漂亮,但难以维护和理解,并且容易出错。