正则表达式重复

时间:2018-09-25 14:38:38

标签: javascript regex

regex noob在这里,我为输入创建了一个regex验证器,我正在尝试验证以下内容:

adapter2.remove((String)fromCurrency.getSelectedItem())

所以我想到了这个:

{ word } //valid
{ word } ; { word } //also valid

它可以工作,但是问题是我之后不能添加任何东西。我想根据需要重复“; {word}”部分。我该怎么办?

2 个答案:

答案 0 :(得分:1)

只需使用:

^((\{\s?[a-zA-Z]+\s?\}\s?;\s?)+)?(\{\s?[a-zA-Z]+\s?\}\s?;?\s?){1}$

匹配所有这些情况:

{ word }
{word}
{ word } ; { word } ; { word }
{ word } ; { word }
{word};{word};{word}
{word};{word}
{ word } ; { word } ; { word } ;
{ word } ; { word } ;
{word};{word};{word};
{word};{word};

答案 1 :(得分:1)

您可以使用

/^\s*{\s*[a-zA-Z]+\s*}\s*(?:;\s*{\s*[a-zA-Z]+\s*}\s*)*$/

请参见regex demo

详细信息

  • ^-字符串的开头
  • \s*{\s*[a-zA-Z]+\s*}\s*-一个{包含0+空格,1 + ASCII字母,然后是一个}包含0+空格
  • (?:-一个非捕获组的开始:
    • ;-分号
    • \s*{\s*[a-zA-Z]+\s*}\s*-一个{包含0+空格,1 + ASCII字母,然后是一个}包含0+空格
  • )*-零次或多次
  • $-字符串的结尾。