Regex 如何检测子字符串中的第一个单词是否完全为大写?
我正在尝试编写一个正则表达式,它将在谷歌表单中返回这些结果。大写和小写都在同一单元格中,包括逗号。我也在寻找一种在谷歌应用程序脚本中实现这一点的方法,但这不是必须的Regex 如何检测子字符串中的第一个单词是否完全为大写?,regex,google-apps-script,google-sheets,Regex,Google Apps Script,Google Sheets,我正在尝试编写一个正则表达式,它将在谷歌表单中返回这些结果。大写和小写都在同一单元格中,包括逗号。我也在寻找一种在谷歌应用程序脚本中实现这一点的方法,但这不是必须的 "UPPER, Case" =TRUE "Upper, CASE" =FALSE "uPPER, case" =FALSE "UppEr, caSe" =FALSE "UPPER, case" =TRUE "uPPer, case" =FALSE
"UPPER, Case" =TRUE
"Upper, CASE" =FALSE
"uPPER, case" =FALSE
"UppEr, caSe" =FALSE
"UPPER, case" =TRUE
"uPPer, case" =FALSE
如您所见,只有当整个第一个单词为大写时,它才会返回true
它还应该忽略逗号和第二个单词
所以我试了一下:
^[A-Z][A-Z]*\W?
^[A-Z] = check first letter to make sure it is a capital letter
[A-Z]* = any amount of the following letters should be capitalized
\W? = ignore anything following and including the first special character (right?)
如果我做错了,请告诉我!我没有得到预期的结果。试试这个正则表达式:
[A-Z]+[,\s|\s,][[A-Z].{1}|[a-z].{1}[a-z]+
说明:
[A-Z]+
-确实抓住了所有的大写字母但是您需要确保两件事。首先,有一个词,这就是为什么要使用+
,\s
-我为您的模式添加了这一部分-它有一个直接的前言含义(空格和逗号您可以尝试这样的([a-Z]{1}[a-Z]+)
此代码验证第一个字母是否为大写,然后验证其余字母
您可以在此站点测试您的正则表达式代码您的匹配正则表达式应该如下所示
^[A-Z]+,\s\w*$
或者([A-Z][A-Z]+)你只需要
[A-Z]+
其他一切都是多余的。但如果只放[A-Z]+,它将接受任何大写字母,这就是重点。[A-Z]+
匹配一个或多个大写A-Z字符类。您的重模式需要至少两个大写字母,而我的重模式只需要一个…您也可以将您的重模式写成[A-Z]{2,}
“大写字母”=TRUE“大写字母”=TRUE“大写字母”=FALSE“大写字母”=FALSE“大写字母”=TRUE“大写”=False这对我不起作用。不管大小写如何,它都会返回true。我想知道Google Sheets是否没有明确检查大写字母。这基本上解决了这个问题,但是,当逗号前有空格时,它就不起作用了(在我的工作表中,有时有空格),但是谢谢你,这很好!在这种情况下,使用这个:^[A-Z]+\s?,\s?\w*$
你做得很好,伙计!谢谢你花时间关注细节!