当我尝试在字符串匹配后提取内容,但得到的结果来自Group1时,我是第一次使用正则表达式
正则表达式模式:("Method":)(?s)(.*$)
字符串:I'm a calling a "Method": "Get"
Regex Demo
我希望输出为“Get”
当我尝试在字符串匹配后提取内容,但得到的结果来自Group1时,我是第一次使用正则表达式
正则表达式模式:("Method":)(?s)(.*$)
字符串:I'm a calling a "Method": "Get"
Regex Demo
我希望输出为“Get”
2条答案
按热度按时间6vl6ewon1#
(?s)
是可选的空白字符,那么你的RegEx应该是这样的:$1
将匹配"Method":
,但这是非常无用的,因为内容是静态的。$2
匹配可选空白字符之后的任何内容。请注意,在这种情况下,捕获组不匹配行尾。Example
laik7k3q2#
你可以这样写:
(?P“方法”):这是一个名为firstNamedGroup的命名组,它将捕获模式**“Method”**
(?:\s):这是一个非捕获组,将匹配任何空格字符,如空格。这是可选的。你可以这样写
(?P.*):这是一个名为secondNamedGroup的命名组,它将捕获模式**“Get”**
$:这是一个字符串的结尾,在go中不能作为行尾。不知道为什么。
备注:
我假设你正在使用go语言查看regex 101链接的配置。顺便说一下,这里是更新版本regex101的链接。
另一个匹配new line**/end of line的正则表达式版本也可以这样写:
(?:$?|\r?\n)与字符串“"$"”或结尾匹配的非捕获组|一个回车还是零\r?和换行符\n。
此正则表达式版本regex101的链接。
您可以使用下面的脚本示例,其中显示了如何使用命名组go.dev。它是使用ChatGPT生成的,因为我在go中没有使用。
我希望它能回答你的问题。