正则表达式新手在这里,我为我的输入创建了一个正则表达式验证器,我正在尝试验证以下内容:
{ word } //valid
{ word } ; { word } //also valid
所以我想到了这个:
^[\s]*\{[a-zA-z\s]*\}[\s]*$|^[\s]*\{[a-zA-z\s]*\}[\s]*\;[\s]*[\s]*\{[a-zA-z\s]*\}[\s]*$
它可以工作,但问题是之后我无法添加任何东西。我想根据需要重复“;{word}”部分。我该怎么做?
最佳答案
你可以使用
/^\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+ 个空格的}
)*
- 零次或多次$
- 字符串结尾。
关于javascript - 正则表达式模式重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500830/