正则表达式检查字符串格式字符串:字符串任意出现



我正在尝试构建regex以匹配-测试get:all-words:Test

可以从一个单词开始,然后是空格,然后是任何出现的单词:用空格分隔的单词。

@"^[a-zA-Z]+/s(^[a-zA-Z]+:^[a-zA-Z]+/s)*"

您在模式中添加了额外的字符串起始锚^,您需要删除它们。

此外,空白空间模式必须写成s,并且第一个s必须在重复组内移动,该重复组应转换为非捕获组((?:...)(以获得更好的性能。

你可以使用

^[a-zA-Z]+(?:s+[a-zA-Z]+:[a-zA-Z]+)*$

请参阅regex演示详细信息

  • ^-字符串的开头
  • [a-zA-Z]+-一个或多个ASCII字母
  • (?:s+[a-zA-Z]+:[a-zA-Z]+)*-零次或多次重复
    • s+-一个或多个空白
    • [a-zA-Z]+:[a-zA-Z]+-一个或多个ASCII字母,:,一个或更多ASCII字母
  • $-字符串的末尾(或使用z匹配字符串的末尾(

如果您想要允许任何单词字符(字母、数字、连接符标点符号(,则用w替换每个[a-zA-Z]

如果只需要支持任何Unicode字母,请将每个[a-zA-Z]替换为p{L}

相关内容

最新更新