我的字符串看起来像:
Especificação do Título
GRND3 - GRENDENE
GRND3 - GRENDENE
POSI3 - POSITIVO INF
我需要将 GRND3、GRND3、POSI3 分成 3 个单独的组。
有什么表达我可以轻松做到的吗?
我的字符串看起来像:
Especificação do Título
GRND3 - GRENDENE
GRND3 - GRENDENE
POSI3 - POSITIVO INF
我需要将 GRND3、GRND3、POSI3 分成 3 个单独的组。
有什么表达我可以轻松做到的吗?
未指定特定语言的问题是^
可能意味着行首或文本开始。
if^
表示行首:
"^(\w+) -"
应该覆盖它。然后你得到第一组(同样是特定于语言的)。
如果^
表示文本的开头(在上述情况下也可以):
不同的系统上有不同的行分隔符,但通常这应该有效:
"\n(\w+) -"
并再次获得第一组。
请注意,我假设您要获取的字符串仅包含字母和数字,在这种情况下\w+
(这意味着一个或多个 ( +
) 单词字符(字母或数字))并且该字符串后跟一个空格,然后是 a -
。
不确定“3 个单独的组”是什么意思,您通常只需遍历所有匹配项,但如果您想在 1 个正则表达式中匹配它们,应该这样做:
"\n(\w+) - (?:\w|\s)*\r?\n(\w+) - (?:\w|\s)*\r?\n(\w+) -"
虽然这并不漂亮,但难以维护和理解并且容易出错。