正则表达式——优先匹配的问题 如果字符串包含a,则匹配a如果字符串包含b,则匹配b如果字符串既包含a又包含b,则只匹配a这样的正则如何写?a|b这样写是不行的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 例如有三个字符串fafe432545ceeew,ruijhg-424,fuie4059fjir-784356写个正则,要求输出结果是1、对于字符串fafe432545ceeew,结果为4325452、对于字符串ruijhg-424,结果为4243、对于字符串fuie4059fjir-784356,结果为784356 如果直接\d+,那么第三个字符串要想匹配到784356,就是Matches[1],而第一个和第二个都是Matches[0]。现在有没有一个正则让我取Matches[0]就能得到我想要的结果。就是说如果字符串中有-后面的数字字符且以数字结尾,那么优先得到这串数字,否则看字符串中是否有连续的数字。这就是有限匹配的想法,[^-]\d+$和(?<.*)\d+(?=.+)这两个正则同时放在一个正则表达式中,但是要把[^-]\d+$匹配到的放在最前面,如何实现? Match m = Regex.Match(input,"(?((?=.+[0-9]$))[0-9]+$|[0-9]+)");Console.WriteLine(m.Value); 优先匹配是这种string input="ab";Regex re = new Regex("(a|ab)");Match m = re.Match(input);Console.WriteLine(m.Value); // a 对,是为了匹配数字,\d+可以,如果是rewtr324dsafe432fwr这样的就需要匹配第一个,而rewtr324dsafe432fwr-4353则需要匹配最后一个。现在想写一个正则,让这两种情况是Mathes[0],这就是我想说的优先的思想。wackyboy给个答案吧,那两个不管用。 C#+AE鹰眼为什么不显示 求教 同学asp.net面试问题 C#短信开发,需要具备哪些知识?? 截取字符串 c++服务器与c#客户端Socket通信乱码的问题!请高手指点! WMI 编程 请问现在学什么好? 求助,地图问题?? WCF 在Service中调一个类的方法出错 求解答 C#调用C++的DLL,二级指针释放的问题。 服务器端有类但报找不到类 字符串转化成int
写个正则,要求输出结果是
1、对于字符串fafe432545ceeew,结果为432545
2、对于字符串ruijhg-424,结果为424
3、对于字符串fuie4059fjir-784356,结果为784356
就是说如果字符串中有-后面的数字字符且以数字结尾,那么优先得到这串数字,否则看字符串中是否有连续的数字。这就是有限匹配的想法,[^-]\d+$和(?<.*)\d+(?=.+)这两个正则同时放在一个正则表达式中,但是要把[^-]\d+$匹配到的放在最前面,如何实现?
Match m = Regex.Match(input,"(?((?=.+[0-9]$))[0-9]+$|[0-9]+)");
Console.WriteLine(m.Value);
string input="ab";
Regex re = new Regex("(a|ab)");
Match m = re.Match(input);
Console.WriteLine(m.Value); // a
现在想写一个正则,让这两种情况是Mathes[0],这就是我想说的优先的思想。wackyboy给个答案吧,那两个不管用。