正则表达式:匹配以某个符号开头的字符串,继续左匹配

时间:2016-08-23 03:31:37

标签: c# regex string

我有一个长字符串,例如:

  

sometext〜ZA÷sometext1〜textsome1〜文本〜ZA÷sometext2〜textsome3〜文本〜.......

我想要一个数组字符串:

  • item1:ZA÷sometext1~dommsome1~text~
  • item2:ZA÷sometext2~dommsome2~text~
  • item3:ZA÷sometext3~domocome3~text~
  • ...

我尝试了模式:ZA÷(。*?)〜

它只匹配ZA÷sometext~,我错过了结果。 任何人帮我解决我的问题。我对正则表达式了解不多!

编辑: 那个字符串只是一个例子。它可能是:

  

ZA÷ACDK¬ZEE÷EcZwBi3N¬ZB÷1¬ZY÷Africa¬ZC÷nyyrdizT¬ZD÷p¬ZE÷QDSLZVAl¬ZF÷0¬ZO÷0¬ZG÷1¬ZH÷1_EcZwBi3N ¬ZJ÷2¬Z大号÷/legue¬ZX÷00Africa ...... 006Africa00100 00000002000CAF   Champion020League000¬〜AA÷÷j3xCaVI8¬AD÷1471966200¬AB÷1¬CR÷1¬AC÷1¬CX÷Enyimba¬AX0¬BX÷÷-1¬WM÷ENY¬AEEnyimba¬WU ÷enyimba-intern ational -WN÷MAMAFF÷Ma melodi Sundowns -WV÷mamelodi-sundownsANAN÷yMW÷16 | 4 .........

这是一个复杂的字符串,规则

3 个答案:

答案 0 :(得分:1)

只需将您的模式更改为:

"ZA÷(.*?)~(.*?)~(.*?)~"

答案 1 :(得分:0)

您可以尝试以下模式

(ZA÷.*?)ZA÷

编辑字符串是一个示例,但它没有重复ZA÷,因此无法正确测试。但我相信如果它符合上面显示的模式,这对你有用。

修改

获得完整字符串后,这似乎正常工作

.+?(?=ZA÷)

.+?匹配任何字符(换行符除外)

量词:

+?在一次和无限次之间,尽可能少地根据需要进行扩展[懒惰]

(?=ZA÷)肯定前瞻 - 断言下面的正则表达式可以匹配

答案 2 :(得分:0)

我的朋友给出了这种模式:( ZA÷((?!ZA÷)。)*),它运作良好。感谢大家的帮助! :d