Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式将短语的开头和结尾与大写单词匹配_Regex - Fatal编程技术网

Regex 正则表达式将短语的开头和结尾与大写单词匹配

Regex 正则表达式将短语的开头和结尾与大写单词匹配,regex,Regex,“大写单词大写单词小写单词大写单词大写单词大写单词” 以下正则表达式匹配上述模式,但如果中间有数字,则无法匹配。 \b[A-Z][A-Z][A-Z]+(?:[\sa-Z,]+[A-Z]+)*\b “大写字母大写字母小写字母WORD 1(或任何数字)大写字母大写字母”将不匹配 你知道怎么在比赛中加入数字吗?我尝试了一些介于[0-9]之间的选项,但没有成功 实际上,给定的模式似乎匹配: 3个或更多大写字符,然后 1个或多个小写字符(或逗号或空格),然后 1个或多个大写字符 您可能需要以下模式: \b

“大写单词大写单词小写单词大写单词大写单词大写单词”

以下正则表达式匹配上述模式,但如果中间有数字,则无法匹配。 \b[A-Z][A-Z][A-Z]+(?:[\sa-Z,]+[A-Z]+)*\b

“大写字母大写字母小写字母WORD 1(或任何数字)大写字母大写字母”将不匹配


你知道怎么在比赛中加入数字吗?我尝试了一些介于[0-9]之间的选项,但没有成功

实际上,给定的模式似乎匹配:

  • 3个或更多大写字符,然后
  • 1个或多个小写字符(或逗号或空格),然后
  • 1个或多个大写字符
  • 您可能需要以下模式:

    \b[A-Z][A-Z][A-Z]+(?:[\sa-z,]+[0-9]*[A-Z]+)*\b
    
    这相当于:

    \b[A-Z]{3,}(?:[\sa-z,]+[0-9]*[A-Z]+)*\b
    
    或者,如果希望在小写字符之前只允许2个(或可能更多)大写字符,则:

    \b[A-Z]{2,}(?:[\sa-z,]+[0-9]*[A-Z]+)*\b
    
    如果您发布一些测试数据,这将有所帮助

    更新:听起来你想要的和你最初描述的完全不同。这样行吗,还是匹配太多

    \b[A-Z]{2}.*[A-Z]{2}\b
    
    如果匹配太多,那么如果您的工具支持负前瞻,那么这可能会起作用,但会变得相当混乱:

    \b[A-Z]{2}((?!\b[a-z][a-z'0-9]+\b\s[a-z][a-z'0-9]+).)*[A-Z]{2}\b
    

    [A-Z]+\s+[A-Z]+\s+[A-Z]+\s*[0-9]*\s*[A-Z]+\s+[A-Z]+
    @pogo,我认为作者不希望在那里有空格,否则当没有数字时,他们现有的模式将无法工作。诚然,这并不十分清楚。示例数据在类似这样的问题上有很大的帮助。您使用哪种语言或工具来解决这个问题?我在Delphi中使用TRegEx,但也尝试使用EditPadThank!但是上面的公式仍然忽略了我这里有一个更好的数据:“到达我们的最佳日期和时间是周一下午1点后,周二下午3点后,周三,而所有其他日期,我们都不可用”。我需要一个公式来匹配一切,包括周一到周三。你绝对是上帝派来的!男人很容易理解,工作起来很有魅力!!再次感谢!!