我想获取特殊字符之间的最后一个字符串。我已经做了方括号作为\[(.*)\]$
匹配特殊字符之间的最后一个字符串
但是,当我在Blah [Hi]How is this[KoTuWa]
之类的东西上使用它。我得到的结果为[Hi]How is this[KoTuWa]
。
如何修改它以得到最后一个字符串KotuWa
。
此外,我想推广到一般特殊字符,而不是像上面那样匹配方括号之间的字符串。
感谢, 西
我想获取特殊字符之间的最后一个字符串。我已经做了方括号作为\[(.*)\]$
匹配特殊字符之间的最后一个字符串
但是,当我在Blah [Hi]How is this[KoTuWa]
之类的东西上使用它。我得到的结果为[Hi]How is this[KoTuWa]
。
如何修改它以得到最后一个字符串KotuWa
。
此外,我想推广到一般特殊字符,而不是像上面那样匹配方括号之间的字符串。
感谢, 西
我会这样做:
[^[\]]+(?=][^[\]]*$)
将其扩展到其他类型的支架/特殊字符,再说我也想匹配的大括号{
和双引号"
:
[^{}"[\]]+(?=["\]}][^{}"[\]]*$)
Debuggex Demo(我加了多行/m
只显示多个例子)
可以要求括号中的字符串不包含括号:
编辑:感谢funkwurm和jcubic对指出错误。这里的fixed expression:
\[([^[]+)\][^\[]*$
如果您需要使用其他的分隔比括号,你应该:
\[
和\]
与新分离例如,假设您需要使用分隔<>
而不是[]
,你会怎么做this:
<([^<]+)>[^\>]*$
下面是做到这一点的一种方法:
\[([^\[]*)\]$
谢谢,这似乎罚款到目前为止。但是,我如何轻松地将它扩展到一组特殊字符之间的最后一个字符串? –
取决于什么“特殊字符”对你。基本上你把这些都放在负面的字符类(你看到的'[^ ...]'部分)。并且他们用一个可接受的结束分隔符的字符类来替换查找头中的第一个'](这是'(?= ...)'部分)。 – funkwurm
这似乎更容易就像'\ W +([\ w \ s] +)\ W * $' – hwnd