python - regexp 最小匹配 match group 起作用的是括号
访问量: 1
是的,可以使用正则表达式来提取 my_name_value。以下是一个Python示例:
import re text = "myname=\"my_name_value\" attr1 = '2234234234'" pattern = r'myname="(.*?)"' match = re.search(pattern, text) if match: name_value = match.group(1) print(name_value) # Output: my_name_value
在这个例子中,正则表达式 r'myname="(.*?)"' 包含以下部分:
myname=": 匹配字符串 "myname="
(.*?): 捕获组,匹配任意字符(除换行符)0次或多次,尽可能少的匹配
": 匹配字符 "
group(0)表示整个匹配组。 (myname="my_name_value")
对应的ruby代码:
text = "myname=\"my_name_value\" attr1 = '2234234234'" pattern = /myname="(.*?)"/ match = pattern.match(text) if match full_match = match[0] captured_value = match[1] puts "Full match: #{full_match}" puts "Captured value: #{captured_value}" end
可以看到,起作用的是 (.*?) 中的括号(), 没有它的话,就不会出现 match group