2012-09-06 92 views
0

我在vistal工作室嘗試了很多語法,並在this site,但沒有任何幫助。 表達將是_ct_(anyDigitHere)_任何人都可以告訴我這個正則表達式嗎? UPDATED

adkasjflasdjfsdf asdfkl sjfdsf _ct150_ asdfasd // so it would match this _ct150 

any thing here doens't matter Random stuff..afd a&r9qwr89 ((
_ct415487_ anything here doesn't matter // this will match _ct415487_ 

基本上任何_ctAndAnyNumberHere_(在開始和結束下劃線)
一對夫婦我試圖^*(_ct)(:z)(+_)+*$^*(_ct[0-9]+_)+*$。但沒有幫助!

編輯 感謝您的回覆。這確實工作,但我現在的問題是用隱藏的字段值替換那些匹配的元素..說..

如果隱藏字段中的值是1數字,(任何值從0-9),I必須從該匹配的表達式取出last數字,並將其替換爲隱藏字段中的值。

如果隱藏字段中的值爲2數字(從0-99中的任何值),則必須從該匹配表達式中取出last two個數字並將其替換爲隱藏字段中的值。

所以,基本上..

如果在隱藏字段的值是n數字的,我必須從匹配的表達式採取last n數字和與隱藏字段的值替換它。

我該怎麼做?

+0

像這樣:'^。*(_ ct [0-9] + _)。* $'?如果是這樣,你只是錯過了點。這將匹配整個輸入並捕獲'_ctXXX_'部分。只匹配'_ctXXX_'部分如下面的答案。 –

+0

@EugeneRyabtsev:是的,在我發佈問題後,我有點想到了。但我還需要別的東西,我已經更新了這個問題來反映這個變化。 – Razort4x

+0

似乎太晚了,但我之前更新了這個問題。 –

回答

0

我不知道你在說什麼語言的Visual Studio,但這應該工作:

_ct\d+_ 

或本:

_ct([0-9]+)_ 

編輯:

Regex rg = new Regex("_ct([0-9]+)_"); 
string text = "any thing here doens't matter Random stuff..afd a&r9qwr89 ((_ct415487_ anything here doesn't matter"; 
var match = rg.Match(text).Groups[1].Value; 
int sizeHiddenField = HiddenField1.Value.Length; 

var newString = text.Replace(match, match.Substring(0, match.Length - sizeHiddenField) + HiddenField1.Value); 
+0

謝謝!這確實奏效了,但我還需要其他的東西,我更新了這個問題,你能否看看你能幫忙嗎? – Razort4x

+0

也更新了答案。 :) –

0
/_ct\d*_/ 

這是給定問題的正則表達式語法。試試這個

相關問題