正则表达式检查句子中仅包含字母的两个单词

Posted

技术标签:

【中文标题】正则表达式检查句子中仅包含字母的两个单词【英文标题】:Regex to check for two words containing only letters in a sentence 【发布时间】:2021-08-23 21:46:11 【问题描述】:

这会检查两个单词,但如果单词包含数字,也会返回 true。那么,如何使用此?

Regex.IsMatch(alphabets, @"^((?:\S+\s+)2\S+).*");
//should return true if string is Honda Civic
//should return false if string is Honda Civic TypeR
//should return false if string is H56da Civic 
//should return false if string is Honda

【问题讨论】:

【参考方案1】:

你可以使用

^[A-Z][a-z]+\s+[A-Z][a-z]+$
^ 字符串开始 [A-Z][a-z]+\s+ 匹配一个大写字符 A-Z、1+ 个小写字符 a-z 和 1+ 个空白字符 [A-Z][a-z]+ 匹配一个大写字符 A-Z 和 1+ 个小写字符 a-z $字符串结束

Regex demo

或者更广泛一点,其中\pLu 匹配具有小写变体的大写字母,pLl 匹配具有大写变体的小写字母,[\pZs\t] 匹配空白字符或制表符。

^\pLu\pLl+[\pZs\t]+\pLu\pLl+$

例子

string[] strings =  
    "Honda Civic",
    "Civic TypeR",
    "H56da Civic",
    "Honda"
    ;
foreach (String alphabets in strings) 
    Console.WriteLine(Regex.IsMatch(alphabets, @"^[A-Z][a-z]+\s+[A-Z][a-z]+$"));

输出

True
False
False
False

【讨论】:

以上是关于正则表达式检查句子中仅包含字母的两个单词的主要内容,如果未能解决你的问题,请参考以下文章

如何使用正则表达式仅捕获具有特定格式的有效句子的第一个单词? [复制]

小易喜欢的单词(正则表达式)

如何使用正则表达式拆分字符串并包含空格

使用正则表达式检测词组搭配

使用正则表达式检查单词中的一个或多个空格

Python:正则表达式单词匹配