簡體   English   中英

正則表達式。 重復一個架構

[英]Regular Expression. Repeat a schema

我有一個像這樣的字符串:

Literal text1: XXXXX Literal text2: XXXXX

如果XXX是具有未知長度和未知字符的文本,則可以是數字,可以是字符或符號。 具有相同文字文本的該字符串可以重復X次,如下所示:

Literal text1: XXXXX Literal text2: XXXXX
Literal text1: XXXXX Literal text2: XXXXX
Literal text1: XXXXX Literal text2: XXXXX
Literal text1: XXXXX Literal text2: XXXXX
...

是否存在可以匹配的正則表達式,無論行數如何,並獲取所有XXXXX字段,而不管要獲取的值的數量。

通常這就是你使用正則表達式所具有的“全局匹配”功能。 (例如,在Python中它是re.findall ;在Perl中它是/.../g 。)

Python中的示例:

import re

for match in re.findall(r"Literal text1: (.*?) Literal text2: (.*?)", your_str):
    # Do something with the match
    print match.group(1)
    print match.group(2)

從您的問題中不清楚,但使用反向引用,此正則表達式將匹配XXXXX在每個匹配行中相同的XXXXX:

(\w+) text1: (.*?) \1 text2: \2

例如,這將匹配

abcd text1: foo abcd text2: foo

'$ 2'將成為捕捉foo

編輯:您可以閱讀unitl,而不是使用$讀取行的結尾,而下一行以Literal開頭

這也可以工作Literal\\s*\\w+:\\s*(.*?)Literal\\s*\\w+:\\s(.*?)Literal

第1組:XXXXX用於text1。

第2組:XXXXX用於text2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM