我想匹配一行文本末尾的可選標記。帶可選部分的正則表達式不會創建反向引用
示例輸入文本:
The quick brown fox jumps over the lazy dog {tag}
我想匹配在大括號的部分,並創建一個向後引用它。
我正則表達式是這樣的:
^.*(\{\w+\})?
(有些簡化,我也匹配標記之前部分):
就OK線匹配(有和沒有標記),但沒有按不會創建對標籤的反向引用。
如果我刪除'?'字符,所以正則表達式是:
^.*(\{\w+\})
它創建一個反向引用標籤,但不匹配沒有標籤的行。
我從http://www.regular-expressions.info/refadv.html理解的是,可選的操作不會影響到反向引用:
輪支架組之間的正則表達式。它們捕獲內部正則表達式匹配的文本,這些文本可以在反向引用中重用,並且允許您將正則表達式運算符應用於整個分組正則表達式。
但是一定是誤會了一些東西。
如何使標籤部分可選並在存在時創建反向引用?
您使用哪種語言? – 2010-06-09 18:46:42
使用C#/ .NET與System.Text.RegularExpressions類。 – user3891 2010-06-09 18:49:38