从正则表达式模式中排除最后一个字符
Exclude last characters from regex pattern
我如何从正则表达式中提取这个:
mymatch[ someother char ]
我想要的是 mymatch
后跟 [
但我不希望匹配中的方括号。
我一直坚持这个,但它也有方括号:
\b.*?\[
更一般地说,我如何从匹配中排除模式的某些部分?
例如这里 (abc2)mymatch
我想要一个正则表达式返回我的比赛只有当它先于 (abc2)
.
在这你需要使用 lookahead 和 lookbehind ,在第一个使用 positive lookahead :
\w+(?=\[)
?=[ : mean followed by "[" and not catch in matches
在第二个例子中使用正后视 :
(?<=\(abc2\))\w+
(?<=(abc2)) : mean leaded by "(abc2)" and not catch in matches
我如何从正则表达式中提取这个:
mymatch[ someother char ]
我想要的是 mymatch
后跟 [
但我不希望匹配中的方括号。
我一直坚持这个,但它也有方括号:
\b.*?\[
更一般地说,我如何从匹配中排除模式的某些部分?
例如这里 (abc2)mymatch
我想要一个正则表达式返回我的比赛只有当它先于 (abc2)
.
在这你需要使用 lookahead 和 lookbehind ,在第一个使用 positive lookahead :
\w+(?=\[)
?=[ : mean followed by "[" and not catch in matches
在第二个例子中使用正后视 :
(?<=\(abc2\))\w+
(?<=(abc2)) : mean leaded by "(abc2)" and not catch in matches