我想使用正则表达式获取所有括号内的所有子字符串。
作为字符串“ foo(bar)foo(baz)golang”的示例,我想要“ bar”和“ baz”
在python中我可以做 re.findall("(?<=\()[^)]+(?=\))", "foo(bar)foo(baz)golang")
怎么做呢?
go
的regexp
软件包不支持零宽度环顾四周。您可以通过以下regexp.FindAllStringSubmatch()
功能利用捕获的分组:
package main
import (
"regexp"
"fmt"
)
func main() {
str := "foo(bar)foo(baz)golang"
rex := regexp.MustCompile(`\(([^)]+)\)`)
out := rex.FindAllStringSubmatch(str, -1)
for _, i := range out {
fmt.Println(i[1])
}
}
输出:
bar
baz
正则表达式\(([^)]+)\)
:
\(
匹配文字 (
([^)]+)
匹配串高达旁边)
,并把比赛以捕获组,在这里你可以使用非greeedy比赛.*?\)
太
\)
匹配文字 )
去游乐场演示
我试图创建一个正则表达式模式来获取给定字符串中的所有数字,这些数字位于方括号内并用逗号分隔。输出应该是这样的, 数字1=45 数字2=66 等等...到目前为止,我所拥有的只是一个贪婪抓住方括号内一切的模式。 我是否应该创建两个模式,一个是贪婪模式,然后是第二个模式,以搜索贪婪输出中由逗号分隔的所有数字?还是只创建一个模式更有效?
问题内容: 我试图编写一个正则表达式,该表达式返回括号之间的字符串。例如:我想获取位于字符串“(”和“)”之间的字符串 会回来 找到正则表达式以获取Javascript中两个字符串之间的字符串,但是我对regex并不陌生。我不知道如何在正则表达式中使用’(’,’)’ 问题答案: 您需要创建一组转义的(带有)括号(与括号匹配)和一组常规的括号来创建捕获组: 分解: :匹配左括号 :开始捕获组 :匹配
上面的正则表达式返回括号之间的文本。 如: 如何重写上面的正则表达式,所以我提供了一个类似的字符串,它将返回。i、 e带括号的部分,其中包含大括号中的字符串。
问题内容: 当我使用某种方式时,它仍然会触发,好像连字符无效。我试着和 问题答案: 转义使用应该没问题,但是您也可以尝试将其放在字符类的开头或结尾。这应该为您工作:
问题内容: 不幸的是,尽管尽我所能记住,每年尝试至少一年学习一次正则表达式,但我却经常忘记,因为我很少使用它们。今年,我新年的决心是不要再尝试学习正则表达式因此,今年,为了避免让我流泪,我将把它交给Stack Overflow_ 。 我想以这种格式传递一个字符串,然后返回该字符串。有人能协助我们坚持我的新年决议吗? 问题答案: 如果您的字符串将始终是该格式,则正则表达式会显得过大: 表示以一个字符
问题内容: 我试图从圆括号中提取一个字符串。 比方说,我有,我只想输出字符串。 我找到了此链接和此正则表达式: 但是,我无法弄清楚如何获得想要的结果。 任何帮助,将不胜感激。谢谢! 问题答案: String str=”John Doe (123456789)”; System.out.println(str.substring(str.indexOf(“(“)+1,str.indexOf(“)”)