正则表达式在子字符串之前获取子字符串

时间:2014-06-07 15:16:04

标签: c# regex

我有一个像下面这样的字符串,

  

喜,你好,-LSB-,ASPECT,-RSB-,你

在这种情况下,我想提取-LSB-,ASPECT,之前的子字符串,直到逗号,hello

我写过像

这样的正则表达式
\b\w+[/-/,LSB/-/,ASPECT]
然而,它会在-LSB-,ASPECT,之前提取整个子字符串并将其包含起来,直到开始为止,

  

嗨,你好,-LSB-,ASPECT

任何线索??

2 个答案:

答案 0 :(得分:3)

此正则表达式(使用positive lookahead assertion)将是

[^,]*(?=,-LSB-,ASPECT,)

<强>解释

[^,]*            # Match any number of characters except commas
(?=              # until the following regex can be matched:
 ,-LSB-,ASPECT,  # the literal text ",-LSB-,ASPECT,".
)                # (End of lookahead assertion)

在这种情况下,小心的方括号会创建一个character class,你不需要。

答案 1 :(得分:0)

<强> Live demo

试试这个:

(\w+),-LSB-,ASPECT