字符串宏替换
我有一个 Visual Studio 2008 C# .NET 3.5 应用程序,我需要在其中解析宏。
给定一个 N 位长的序列号和一个类似 %SERIALNUMBER3%
的宏,我希望此解析方法仅返回序列号的前 3 位数字。
string serialnumber = "123456789";
string macro = "%SERIALNUMBER3%";
string parsed = SomeParseMethod(serialnumber, macro);
parsed = "123"
给定 `%SERIALNUMBER7%,返回前 7 位数字等。
我可以使用 String.IndexOf
和一些复杂的方法来完成此操作,但我想知道是否有一个简单的方法。也许使用 Regex
替换。
做到这一点最简单的方法是什么?
I have a Visual Studio 2008 C# .NET 3.5 application where I need to parse a macro.
Given a serial serial number that is N digits long, and a macro like %SERIALNUMBER3%
, I would like this parse method to return only the first 3 digits of the serial number.
string serialnumber = "123456789";
string macro = "%SERIALNUMBER3%";
string parsed = SomeParseMethod(serialnumber, macro);
parsed = "123"
Given `%SERIALNUMBER7%, return the first 7 digits, etc..
I can do this using String.IndexOf
and some complexity, but I wondered if there was a simple method. Maybe using a Regex
replace.
What's the simplest method of doing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用
Regex
类。您的表达式将类似于:您的第一个捕获组是 ID(在本例中为“SERIALNUMBER”),第二个捕获组是位数(在本例中为“3”)。
Use the
Regex
class. Your expression will be something like:Your first capture group is the ID (in this case, "SERIALNUMBER"), and your second capture group is the number of digits (in this case, "3").
非常快速和肮脏的例子:
Very quick and dirty example: