xxxTxxx
或
xxxTxx
或
xxxTx
我希望最后得到所有 x。
(.*)(x$)
只能获得最后一个x。
(.*)(x*$)
无效,因为它与结尾不匹配。我需要在魔术背后使用一些看法,对吧?
谢谢你的正则表达式!
答案 0 :(得分:4)
如果您只想在结尾处使用x
,则可以使用:
/(x+)$/
这基本上说要查看字符串的末尾至少一个x并找到尽可能多的。
如果您想在开头使用所有x
,可以使用:
/^(x+)/
这会做同样的事情,但会告诉它查看字符串的开头。
答案 1 :(得分:1)
怎么样:
^(.*?)(x+)$
您将拥有第2组中的x以及第1组中的所有内容。
答案 2 :(得分:0)
它总是'T'吗?
在哪种情况下:
T(x*)$
或者T可能是除了'x'以外的任何东西:
[^x](x*)$
编辑:
实际上:
(x*)$
......足够了。它会贪婪地消耗'x'。如果在'x'的运行结束时它找到了字符串的结尾,那就是匹配。否则它会丢弃它们并开始尝试再次匹配。
答案 3 :(得分:0)
尝试使用此模式:
使用RegexOptions.RightToLeft,您将确保开始寻找字符串的结尾。
string text = "xxxTxxx";
string pattern = @"x+";
Regex r = new Regex(pattern, RegexOptions.RightToLeft);
string temp = r.Match(text).Value;
输出将是:
“XXX”
如果你想确定它在文本的最后,请使用:
string text = "xxxTxxx&";
string pattern = @"x+$";
Regex r = new Regex(pattern, RegexOptions.RightToLeft);
string temp = r.Match(text).Value;
在这种情况下,输出将是:
“”