正则表达式提取具有初始和最终令牌的组

时间:2015-12-26 18:13:46

标签: regex

我想从像这样的字符串中提取组

hkjh kha 1112266 -stsi- XXXX XXX 6616 -stsf- aa bbb 17761 jjh1 jjh1j -stsi- YYYY -stsf- kjhjk  kkj jjlklkj jljkj -stsi- YYYY YYY 123 -stsf- jkhkjh shkahska

我的正则表达式

(-stsi-.*-stsf-)

提取一个大组

-stsi- XXXX XXX 6616 -stsf- aa bbb 17761 jjh1 jjh1j -stsi- YYYY -stsf- kjhjk  kkj jjlklkj jljkj -stsi- YYYY YYY 123 -stsf-

我想要这样的三个小组

-stsi- XXXX XXX 6616 -stsf-
-stsi- YYYY -stsf-
-stsi- YYYY YYY 123 -stsi-

inside -stsi-和-stsi-可以是任何东西

1 个答案:

答案 0 :(得分:2)

?之后添加.*量词,以便它尽可能少地匹配(.*?):

(-stsi-.*?-stsf-)

在表达式(-stsi-.*-stsf-)中,字符*greedy,并且它将尽可能多地匹配。 ?量词使其lazy并阻止它。