2012-09-06 43 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*_/ 

这是给定问题的正则表达式语法。试试这个

相关问题