我有这样的字符串"first#second",我想知道如何在没有"#"符号的情况下获得"第二"部分作为RegEx的结果,而不是使用括号进行匹配捕获
upd:我忘了在字符串的末尾添加一个特殊字符,真正的字符串是"first#second*"
简单的正则表达式:
/#(.*)$/
Run Code Online (Sandbox Code Playgroud)
如果您真的不希望它成为匹配捕获,并且您知道字符串中有 # 但您想要的部分没有,您可以这样做
/[^#]*$/
Run Code Online (Sandbox Code Playgroud)
整个正则表达式就是你想要的。
如果你必须使用正则表达式,并且你坚持不使用捕获组,你可以在支持它们的风格中使用lookbehind,如下所示:
(?<=#).*
Run Code Online (Sandbox Code Playgroud)
或者你也可以捕获任何东西,但是#,到字符串的末尾,所以像这样:
[^#]*$
Run Code Online (Sandbox Code Playgroud)
捕获组选项当然是:
#(.*)
\__/
1
Run Code Online (Sandbox Code Playgroud)
这也匹配#,但组1捕获您想要的部分.
最后,非正则表达式可能看起来像这样:
secondPart = wholeString.substring( wholeString.indexOf("#") + 1 )
Run Code Online (Sandbox Code Playgroud)
如果#也可以在字符串中的任何其他位置出现(可能是转义)这些解决方案中的某些问题.
| 归档时间: |
|
| 查看次数: |
3035 次 |
| 最近记录: |