简单的正则表达式,用于将多个单词与空格/多个空格或没有空格和特殊字符匹配



我有一个用逗号分隔的字符串。
前 3 个字段是静态的。 字段 4-20 是动态的,可以包含任何字符串,即使它包含特殊字符但不能为空。 字段 21 是静态的 字段 22 是动态的,可以包含任何字符串,即使它有特殊字符。 字段 23,24 是静态的。

我需要确保字符串符合上述条件并且是匹配的,但我想知道如何使字段 4-20 可以选择包含特殊字符而不是空白。(4-20之间共17个)

如果我删除特殊字符的要求,这似乎有效:

Field1\,Field2\,Field3\,+([\w\s\,]+)F21/C\,[\w\s\,]+(F/23\,)(Field24)

使用此字符串 字段 1,字段 2,字段 3,F4,f5,6f 1,f72,f8,F9,F10,F1,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21/c,f22,f/23,字段 24

有没有办法用字段 4-20 具有特殊字符并且不像"或"那样为空来实现这一点,或者我把它推得太远了?

我知道我可以通过 c# 解析它,但我正在试验正则表达式,它似乎非常强大。

谢谢

我没有完全理解这个问题 但我认为这就是你想要的底线:

s1,s2,s3,([^ ,]+,){17}s21,[^ ,]+,s23,s24

将 sX 替换为相关静态字段。

例: https://regex101.com/r/EaAPKH/1

最新更新