C# 我希望正则表达式匹配每个字母C之间的点#
我有缩写字段,我想确保输入的格式如下:C# 我希望正则表达式匹配每个字母C之间的点#,c#,regex,C#,Regex,我有缩写字段,我想确保输入的格式如下: x.x.(大写或小写) 例如: 以下内容有效:F.H. 以下内容无效:FH或F.H或FH. 我使用了以下正则表达式: \.([a-zA-Z])+\. ([a-zA-Z]\.)+ 但并不是每封信都有效 提前谢谢 在您的示例中,您提到使用了([a-zA-Z]\)+。该正则表达式应匹配F.H. 根据所使用的代码,您可能需要通过包含^$或\A\z元字符来确保匹配整个行或字符串。在这种情况下,您将拥有^([a-zA-Z]\.)+$或\a([a-zA-Z]\.)+
x.x.(大写或小写)
例如:
以下内容有效:F.H.
以下内容无效:FH或F.H或FH.
我使用了以下正则表达式:
\.([a-zA-Z])+\.
([a-zA-Z]\.)+
但并不是每封信都有效提前谢谢 在您的示例中,您提到使用了
([a-zA-Z]\)+
。该正则表达式应匹配F.H.
根据所使用的代码,您可能需要通过包含^$
或\A\z
元字符来确保匹配整个行或字符串。在这种情况下,您将拥有^([a-zA-Z]\.)+$
或\a([a-zA-Z]\.)+\Z
,这将确保F.H或FH.不会意外匹配
除此之外,您可能需要考虑到并非所有用户都只有ASCII名称。然后可以使用\p{L}
或\p{Letter}
Unicode类别来包含所有语言的字母
综上所述,我建议使用以下正则表达式:
^(\p{L}\)+$
正如您在中所看到的,这将匹配示例字符串F.H.,A.B.C.和ÖÉ,而不匹配FH,F.H或A.5.以下正则表达式应该工作:
^([A-Z]{1}+/code>>[A-Z]{1}
将大写字母A到Z精确匹配一次-\.{1}
将点(转义)匹配一次-(…)+
重复匹配组1到无限时间欢迎来到StackOverflow,我希望你不要因为你的问题已经结束而气馁。正则表达式问题很难提出,它们很容易变得有点过于开放,不适合SO的格式。我建议玩一玩,这样你就可以更具体地询问匹配者t这会引起问题。用你的确切用例(文本中的缩写、表单中的首字母缩写等)编辑问题也可能会有所帮助。Thanx@lime,我编辑了这篇文章,并使一个问题更加具体!@Isaac85:太好了!为了使它更具可回答性(从而增加重新打开的机会),我建议在“并非对每个字母都有效”部分。包括一个应该匹配但不匹配的问题字符串列表。这样,回答的人可以评估他们是否真正解决了您的问题。(作为旁注,可能只是你在a-z
和a-z
中有一个输入错误。同样,如果你在我上面链接的测试环境中摆弄它,你会更容易告诉我们你尝试了什么并帮助我们)