Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
287 views
in Technique[技术] by (71.8m points)

python - Capture contents inside curly braces

So, as part of my application, I need it to read data from a text file, and get elements between curly brackets.

e.g:

Server_1 {

    /directory1 /directory2

}

Server_2 {

    /directory1

    /directory2

}

Then something like, if Server == Server_1, print the directories.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can try with this:

{(.*?)}

Explanation

  1. { matches the character { literally (case sensitive)
  2. (.*?) 1st Capturing Group
  3. .*? matches any character
  4. *? Quantifier — Matches between zero and unlimited times, as few times as possible, expanding as needed (lazy)
  5. } matches the character } literally (case sensitive)

Sample Code to extract content inside curly bracket:

 import re

regex = r"{(.*?)}"

test_str = ("Server_1 {
"
    "/directory1 /directory2

"
    "}
"
    "Server_2 {

"
    "/directory1

"
    "/directory2

"
    "}")

matches = re.finditer(regex, test_str, re.MULTILINE | re.DOTALL)

for matchNum, match in enumerate(matches):
    for groupNum in range(0, len(match.groups())):
        print (match.group(1))

Run the code here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...