繁体   English   中英

是否有可能解析字符串的正则表达式?

[英]is there a regex for parsing a string possible?

请考虑以下字符串:

01500343014501044801

我想解析这个字符串并用它填充6个变量,它们从字符串中的固定长度填充。

而不是做明显的:

string s1 = s.Substring(0, 3);
//...
string s2 = s.Substring(7, 8);
//...

我想知道是否有正则表达式可以做到这一点? 或者.NET框架在C中有类似sscanf的东西吗?

是的,你可以指定块的长度(\\d{5})(\\d{4})(\\d{7})(\\d{4})将捕获由5,4,7组成的4组和4位数。
尽管对您的问题的评论很明显,但RegEx会更慢。

    var myNumber = "01500343014501044801";
    var m = Regex.Matches(myNumber, @"\d{3}");

Jamie Zawinski的引文:

有些人在面对问题时会想“我知道,我会使用正则表达式”。 现在他们有两个问题。

使用正则表达式在性能方面成本很高。 因为你没有使用正则表达式提供的任何模式匹配工具,所以我坚持你的情况下的子串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM