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

订阅/RSS Feed

Subscribe