(在 C# 中使用正则表达式)
我有几个正则表达式来解析多个字段中的一行。其中一个字段有一个可选字符,我不知道如何让我的正则表达式来分割它。我试图用一行来改进它,但我做不到。
我的输入:
4-002 TERMO CONTINENTAL 1 L N°3995 9.22 4-003 TERMO CONTINENTAL 2 N°3996 99.22
我想要的输出:
Item[0].Code = 4-002
Item[0].Detail = TERMO CONTINENTAL 1 L N°3995
Item[0].Price = 9.22
Item[1].Code = 4-003
Item[1].Detail = TERMO CONTINENTAL 2 N°3996
Item[1].Price = 99.22
我的最后一次尝试:
分隔两项:(?=\d\-\d\d\d\s.*)
这不起作用,因为某些代码是:例如 14-001
而不是 4-001
我尝试过: ([\d]\d\-\d\d\d\s.*)
但都不起作用
问题:
我怎样才能检索这两种可能性? 14-001
和 4-001
与此问题相关的其他事情:
要将详细信息与价格分开:([^\s]*$)
(来自之前拆分的一项)
将代码与细节分开: (\d\-\d\d\d\s)
(与原始问题相同的问题)
任何有关此正则表达式的帮助都会有所帮助并受到重视。
提前致谢!
最佳答案
我相信以下正则表达式可以安全使用:
(\d+-\d+)\s+(.*?N°\d+)\s+(\d+\.\d+)
如果 Item.Detail
可以包含任何文本,并且位于 digits
-digits
和浮点值之间,请使用
(\d+-\d+)\s+(.*?)\s+(\d+\.\d+)
结果:
关于c# - 使用可选值改进正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33306731/