使用可选值改进正则表达式
Improve Regular Expression with optional values
(在 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\d\d)(.*?)(\d+\.\d\d)
+
出现一次或多次。
我相信以下正则表达式可以安全使用:
(\d+-\d+)\s+(.*?N°\d+)\s+(\d+\.\d+)
如果 Item.Detail
可以包含任何文本并且它位于 digits
-digits
和浮点值之间,请使用
(\d+-\d+)\s+(.*?)\s+(\d+\.\d+)
结果:
(在 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\d\d)(.*?)(\d+\.\d\d)
+
出现一次或多次。
我相信以下正则表达式可以安全使用:
(\d+-\d+)\s+(.*?N°\d+)\s+(\d+\.\d+)
如果 Item.Detail
可以包含任何文本并且它位于 digits
-digits
和浮点值之间,请使用
(\d+-\d+)\s+(.*?)\s+(\d+\.\d+)
结果: