regex noob在这里,我为输入创建了一个regex验证器,我正在尝试验证以下内容:
adapter2.remove((String)fromCurrency.getSelectedItem())
所以我想到了这个:
{ word } //valid
{ word } ; { word } //also valid
它可以工作,但是问题是我之后不能添加任何东西。我想根据需要重复“; {word}”部分。我该怎么办?
答案 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+空格)*
-零次或多次$
-字符串的结尾。