从正则表达式模式中排除最后一个字符

Exclude last characters from regex pattern

我如何从正则表达式中提取这个:

mymatch[ someother char ]

我想要的是 mymatch 后跟 [ 但我不希望匹配中的方括号。

我一直坚持这个,但它也有方括号:

\b.*?\[

更一般地说,我如何从匹配中排除模式的某些部分?

例如这里 (abc2)mymatch 我想要一个正则表达式返回我的比赛只有当它先于 (abc2).

在这你需要使用 lookaheadlookbehind ,在第一个使用 positive lookahead :

\w+(?=\[)

?=[ : mean followed by "[" and not catch in matches

在第二个例子中使用正后视 :

(?<=\(abc2\))\w+

(?<=(abc2)) : mean leaded by "(abc2)" and not catch in matches

for more information about lookahead and lookbehind