我在很多正則表達式引擎中發現了一些有趣的可能性:正則表達式:遞歸反向引用 - 用於什麼?
可以在捕獲組內引入反向引用並引用該組。
例如:(\1)
我的問題:什麼正則表達式模式可以使用?我無法想象...
我在很多正則表達式引擎中發現了一些有趣的可能性:正則表達式:遞歸反向引用 - 用於什麼?
可以在捕獲組內引入反向引用並引用該組。
例如:(\1)
我的問題:什麼正則表達式模式可以使用?我無法想象...
有一個explanation for use of nested references,我認爲這清楚地表明瞭此功能的邊際效用。
示例正則表達式,請 – ControlFlow 2010-02-04 13:04:11
如果你輕鬆地閱讀我的問題,你會明白,我並不是在問如何正常使用反向引用,請看看我提供的示例正則表達式中有哪些反向引用。 – ControlFlow 2010-02-04 14:02:23
@ControlFlow:I don沒有看到你發佈任何*正則表達式,我無法想象'(\ 1)'可能匹配什麼,或者對於甚至編譯有用。實際的例子 – SilentGhost 2010-02-04 14:14:35
這個怎麼樣(忽略空格):
{ .* ({ .* \1 .* }) .* }
匹配方法的身體在C#/的Java/...
它不起作用,反向引用與捕獲組1匹配的文本匹配,而不是組1中的模式本身。 – ControlFlow 2010-02-24 20:07:53
@ControlFlow:這隻需要是'(?1)'而不是'\ 1',它確實會在像樣的正則表達式引擎上遞歸。 – tchrist 2011-02-27 16:25:23
我還有很長的YAML架構,我需要/想從:
columns:
id:
type: string(36)
fixed: true
unsigned: false
primary: true
autoincrement: false
descripcion:
type: string(45)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
要這樣:
columns:
id: {type: string(36), fixed: true, unsigned: false, primary: true, autoincrement: false}
descripcion: {...}...
在這種情況下,我需要backrefences中的遞歸級別,因爲列名在列描述之間。 這是適合每一行,但我不能把「{}」以防萬一$ 1,我想最終每個描述域之間的括號:
"\n^ ([^\n]+)"
如果你需要找出第二次出現的指數? – SilentGhost 2010-02-04 12:40:50
SilentGhost,你應該已經發布了這個答案。 – 2010-02-04 12:48:05
@SilentGhost:我相信應該是一個答案。 – sepp2k 2010-02-04 12:48:14