2016-05-31 122 views
2

是否可以用下劃線替換點,而只用正則表達式使用正則表達式呢?正則表達式來替換大括號內的點?

eg. a.b.c={{c.d.f}} 
    after the replace it should look like 
    a.b.c={{c_d_f}} 

大括號總是平衡的,總是會有兩個開放的大括號和兩個封閉的大括號。

+1

哪種編程語言? – ritesht93

+2

指定編程語言以及所有可能的假設,如平衡括號以及內容應該僅在雙括號內還是可以在單個括號內? – rock321987

+0

@ ritesht93正則表達式一般來說,它可以是任何具有正則表達式能力的文本編輯器。記事本+ +。 – panagdu

回答

2

您可以使用此前瞻的正則表達式搜索:

\.(?=[^{}]*\}) 

先行(?=[^{}]*\})聲稱有後0或多個非{和非}字符提前}

_

RegEx Demo

+0

這並不檢查一個點是否在*成對的大括號內。 –

+0

這是假設'{'和'}'平衡並且沒有逃脫。 – anubhava

+1

@anubhava非常感謝!這似乎對我很好! – panagdu

1

更換可以使用\G像(假設.{{內,沒有嵌套)

(?:(\{\{)|\G(?!\A))([^.}]*)[.] 

,代之以

\1\2_ 

Regex Demo

0

如果妳假設存在點之間的一個字符,請使用: 搜索:{(((。)。})。{)} 替換:\ 1_ \ 2_8 \ 3 如果一個或更多: 搜索:({{。+)。(。+)。(。+}}) 使用相同的替換