如何使用正则表达式验证带空格的逗号分隔字符串

伽玛

我需要使用正则表达式验证逗号分隔的字符串,但是我有两个问题。

我的示例输入如下,

ERWSW1,ERWSW2,ASA,S4,ERWSW5,ERWSW6,ERWSW7 - Valid

ERW SW1,ERW SW2,ASA,S4,ERW SW5,ERW SW6,ERWSW7 - Valid(space between word should valid)

ERWSW1,ERWSW2,ASA,S4,ERWSW5,ERWSW6,ERWSW7, - Invalid - Comma at end

,ERWSW1,ERWSW2,ASA,S4,ERWSW5,ERWSW6,ERWSW7 - Invalid - Comma at beginning

ERWSW1,ERWSW2,,ASA,S4,ERWSW5,ERWSW6,ERWSW7 - Invalid - No value between 2,3 comma

我写了以下正则表达式来验证输入

^([a-z A-Z0-9 !@#$%?=*&-]+,)*[a-z A-Z0-9 !@#$%?=*&\s-]+$

第一个问题是逗号之间的空格显示为有效字符串。

Eg: ERWSW1, ,   ,ERWSW2,ASA,S4

我需要避免这种情况,我该怎么办?

我的第二个问题是,我还需要从字符串中删除多余的空间。两个删除我需要功能的多余空间。(这与上面的正则表达式无关

Input: ERWSW1 ,  ERW SW2,ASA ,S4 ,ERW SW5,ERWSW6,ERWSW7

我需要以下输出,

RWSW1,ERW SW2,ASA,S4,ERW SW5,ERWSW6,ERWSW7

更新 :

对于第二个问题,我编写了以下代码,

string str = " ERW SW1 , ERW SW2 , ASA";
var ss = Regex.Replace(str, " *, *", ",");

但是它没有正确删除空格,我需要这个输出

ERW SW1,ERW SW2,ASA
第四只鸟

您可以使用字符类来指定允许匹配的内容。对于单词之间的空格,您可以使用重复组,并在其前面加上一个空格。

^[\w!@#$%?=*&.-]+(?: [\w!@#$%?=*&.-]+)*(?:,[\w!@#$%?=*&.-]+(?: [\w!@#$%?=*&.-]+)*)*$

正则表达式演示

要删除逗号周围的空格,可以匹配包含空格和逗号的字符串 *, *,然后用一个逗号替换逗号所包围的空格。

^ *[\w!@#$%?=*&.-]+(?: [\w!@#$%?=*&.-]+)*(?: *, *[\w!@#$%?=*&.-]+(?: [\w!@#$%?=*&.-]+)*)* *$

正则表达式演示| C#演示

代码示例

string[] strings = {
    "ERWSW1,ERWSW2,ASA,S4,ERWSW5,ERWSW6,ERWSW7",
    "ERW SW1,ERW SW2,ASA,S4,ERW SW5,ERW SW6,ERWSW7",
    "ERWSW1,ERWSW2,ASA,S4,ERWSW5,ERWSW6,ERWSW7,",
    ",ERWSW1,ERWSW2,ASA,S4,ERWSW5,ERWSW6,ERWSW7",
    "ERWSW1,ERWSW2,,ASA,S4,ERWSW5,ERWSW6,ERWSW7",
    "ERWSW1 ,  ERW SW2,ASA ,S4 ,ERW SW5,ERWSW6,ERWSW7",
    "ERW*SW1,ERW-SW2,A.SA",
    " ERWSW1 , ERWSW2 ,ASA,S4,ERWSW5 "
};

string pattern = @"^ *[\w!@#$%?=*&.-]+(?: [\w!@#$%?=*&.-]+)*(?: *, *[\w!@#$%?=*&.-]+(?: [\w!@#$%?=*&.-]+)*)* *$";

foreach (String s in strings) {
    if (Regex.IsMatch(s, pattern)) {
        Console.WriteLine(Regex.Replace(s, " *, *", ",").Trim());
    }
}

输出量

ERWSW1,ERWSW2,ASA,S4,ERWSW5,ERWSW6,ERWSW7
ERW SW1,ERW SW2,ASA,S4,ERW SW5,ERW SW6,ERWSW7
ERWSW1,ERW SW2,ASA,S4,ERW SW5,ERWSW6,ERWSW7
ERW*SW1,ERW-SW2,A.SA
ERWSW1,ERWSW2,ASA,S4,ERWSW5

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式按空格和逗号分隔字符串

来自分类Dev

使用正则表达式验证逗号分隔的数字字符串吗?

来自分类Dev

如何使用正则表达式解析逗号分隔的字符串而不拆分

来自分类Dev

逗号分隔字符串的正则表达式

来自分类Dev

逗号分隔字符串的正则表达式

来自分类Dev

python正则表达式按逗号或空格分隔(但保留字符串原样)

来自分类Dev

逗号或空格分隔字符串的正则表达式

来自分类Dev

正则表达式用逗号分隔验证字符串

来自分类Dev

在sparql中使用正则表达式拆分逗号分隔的字符串

来自分类Dev

使用正则表达式检查逗号分隔的字符串

来自分类Dev

使用正则表达式拆分字符串时,请跳过用逗号分隔的字符串中的空格

来自分类Dev

如何为带空格的字符串创建一个正则表达式

来自分类Dev

如何使用正则表达式替换oracle中逗号分隔字符串中的单个数字?

来自分类Dev

正则表达式逗号分隔字符串中的子字符串

来自分类Dev

正则表达式从逗号分隔的字符串中删除某些字符串

来自分类Dev

正则表达式可使用单个结尾的可选*来验证逗号分隔的字符串,但不允许试用逗号

来自分类Dev

如何使用正则表达式验证动态制表符和换行符分隔的字符串?

来自分类Dev

逗号分隔字符串的正则表达式(2个字符串,以逗号分隔)

来自分类Dev

正则表达式使用拆分逗号分隔的字符串忽略双引号中的逗号

来自分类Dev

使用正则表达式验证字符串

来自分类Dev

使用正则表达式验证字符串

来自分类Dev

如果字符串包含逗号(,)空格和其他字符(例如(),则如何制作正则表达式

来自分类Dev

Java字符串用单词,空格和特殊字符分隔正则表达式

来自分类Dev

如何使用带边界的 R 正则表达式删除部分字符串

来自分类Dev

Javascript正则表达式匹配最后返回带逗号的字符串

来自分类Dev

Javascript正则表达式匹配最后返回带逗号的字符串

来自分类Dev

如何使用正则表达式分隔字符串的各个部分

来自分类Dev

如何在python中使用正则表达式以“,”分隔字符串

来自分类Dev

正则表达式用于从逗号分隔的字符串中删除项目?

Related 相关文章

  1. 1

    使用正则表达式按空格和逗号分隔字符串

  2. 2

    使用正则表达式验证逗号分隔的数字字符串吗?

  3. 3

    如何使用正则表达式解析逗号分隔的字符串而不拆分

  4. 4

    逗号分隔字符串的正则表达式

  5. 5

    逗号分隔字符串的正则表达式

  6. 6

    python正则表达式按逗号或空格分隔(但保留字符串原样)

  7. 7

    逗号或空格分隔字符串的正则表达式

  8. 8

    正则表达式用逗号分隔验证字符串

  9. 9

    在sparql中使用正则表达式拆分逗号分隔的字符串

  10. 10

    使用正则表达式检查逗号分隔的字符串

  11. 11

    使用正则表达式拆分字符串时,请跳过用逗号分隔的字符串中的空格

  12. 12

    如何为带空格的字符串创建一个正则表达式

  13. 13

    如何使用正则表达式替换oracle中逗号分隔字符串中的单个数字?

  14. 14

    正则表达式逗号分隔字符串中的子字符串

  15. 15

    正则表达式从逗号分隔的字符串中删除某些字符串

  16. 16

    正则表达式可使用单个结尾的可选*来验证逗号分隔的字符串,但不允许试用逗号

  17. 17

    如何使用正则表达式验证动态制表符和换行符分隔的字符串?

  18. 18

    逗号分隔字符串的正则表达式(2个字符串,以逗号分隔)

  19. 19

    正则表达式使用拆分逗号分隔的字符串忽略双引号中的逗号

  20. 20

    使用正则表达式验证字符串

  21. 21

    使用正则表达式验证字符串

  22. 22

    如果字符串包含逗号(,)空格和其他字符(例如(),则如何制作正则表达式

  23. 23

    Java字符串用单词,空格和特殊字符分隔正则表达式

  24. 24

    如何使用带边界的 R 正则表达式删除部分字符串

  25. 25

    Javascript正则表达式匹配最后返回带逗号的字符串

  26. 26

    Javascript正则表达式匹配最后返回带逗号的字符串

  27. 27

    如何使用正则表达式分隔字符串的各个部分

  28. 28

    如何在python中使用正则表达式以“,”分隔字符串

  29. 29

    正则表达式用于从逗号分隔的字符串中删除项目?

热门标签

归档