Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有逗号分隔字符串的正则表达式,由.NET中的管道符号分隔_.net_Regex - Fatal编程技术网

带有逗号分隔字符串的正则表达式,由.NET中的管道符号分隔

带有逗号分隔字符串的正则表达式,由.NET中的管道符号分隔,.net,regex,.net,Regex,我正在尝试获取以下格式的正则表达式。它需要一个“名称”,任何字符,除了空白或什么都没有。管道符号始终,然后是以逗号分隔的项目列表,可以是任何字符。逗号后面不能有空格(,) 下面是我到目前为止所做的,基本上每次都是匹配的 (.*)|([.*]+(,[\S]+)*)+ 残疾人 Name| Name |Item1,Item2 |Item1,Item2 Name|Item1, Item2 | 你可以用 ^[^|\s]+\|[^,|\s]+(?:,[^,|\s]+)*$ 见 详细信息 Name

我正在尝试获取以下格式的正则表达式。它需要一个“名称”,任何字符,除了空白或什么都没有。管道符号始终,然后是以逗号分隔的项目列表,可以是任何字符。逗号后面不能有空格(,)

下面是我到目前为止所做的,基本上每次都是匹配的

(.*)|([.*]+(,[\S]+)*)+
残疾人

Name|
Name
   |Item1,Item2
|Item1,Item2
Name|Item1, Item2
|
你可以用

^[^|\s]+\|[^,|\s]+(?:,[^,|\s]+)*$

详细信息

Name|
Name
   |Item1,Item2
|Item1,Item2
Name|Item1, Item2
|
  • ^
    -字符串的开头
  • [^ |\s]+
    -除
    和空格之外的一个或多个字符
  • \\\\\\
    -a
    \
    字符
  • [^,|\s]+
    -一个或多个字符,而不是
    |
    和空白
  • (?:,[^,|\s]+)*
    -逗号的零次或多次重复,然后是一个或多个字符,而不是
    |
    和空格
  • $
    -字符串结束

@MikeFlynn No,然后使用
^[^ |]+\\\[^,|\s]+(?:,[^,|\s]+)*$
逗号分隔列表中的逗号之间是否有空格?只是不在开头或结尾。@MikeFlynn是的,
^[^ |]+\\\\[^,\124; s]+(?:\s*,\s*[^,|s]+)*$
这不再匹配,
名称|测试测试,测试
(空白)|测试,测试
名称|测试,测试
@MikeFlynn我误解了你的意图。我想你需要
^[^ |]+\\\[^,[124;]+(?:,[^,[124;]+)*$