正则表达式在上下文中的字符串的开头

时间:2013-07-23 14:55:18

标签: c# regex

我有以下RegEx-Pattern:

pattern = @"(?<=\[)[\da-f]{8}(?=\])";

正确地从“ [f000000f]栏”中提取“ f000000f ”,但它不应与“ Foo [f000000f]栏“所以我添加了^来确定模式的开头:

pattern = @"^(?<=\[)[\da-f]{8}(?=\])";

但是这种模式对两种输入都不起作用。

有人能告诉我如何强制第一个模式只在input-String的开头匹配吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你需要在lookbehind中移动锚点,如下所示:

(?<=^[)[\da-f]{8}(?=])"

否则,您将无法与[f000000f]匹配,因为您的表达式中没有任何部分“消耗”开头方括号[