当前位置: 首页 > 知识库问答 >
问题:

编辑regex以实现角色(至少需要一个字母)

闾丘卓
2023-03-14

我的C#代码上有一个正则表达式,我想通过添加约束来编辑它,如果字符串不包含至少一个字母,则拒绝文本,不管是什么语言。

我的正则表达式:@“^(?!\s+$)[\p{L}\p{M}\p{N}\p{Zs}\t'.-]+$”

有什么建议请。

共有1个答案

曹光霁
2023-03-14

任何Unicode字母都可以与\p{L}匹配(请参阅您自己的模式)。

要匹配Unicode字母以外的任何字符,为了“找到”字符串中的字母,可以使用\p{L}*。如果只有没有换行符的字符串,则可以简单地使用.*.*?

注意,该要求还包括至少有一个非空白字符的要求,因此(?!\s+$)前瞻变得多余(因为它所做的只是在字符串中只有空白时取消匹配)。

要要求某些模式在字符串后面出现,可以使用lookahead:

@"^(?=\P{L}*\p{L})[\p{L}\p{M}\p{N}\p{Zs}\t'.-]+$"
// ^^^^^^^^^^^^^^^
@"^(?=.*\p{L})[\p{L}\p{M}\p{N}\p{Zs}\t'.-]+$"
// ^^^^^^^^^^^

请参阅.NET正则表达式演示。

详情:

  • ^-字符串的开始
  • (?=\p{L}*\p{L})-在除Unicode字母以外的零个或多个字符之后,必须有一个Unicode字母
  • [\p{L}\p{M}\p{N}\p{Zs}\t'。-]+-一个或多个字母、变音符、数字、水平空格、'.-字符
  • $-字符串结尾。
 类似资料:
  • 编辑角色       点击编辑角色按钮,打开编辑角色面板,修改需要变更的内容。点击确定保存结果。

  • 我有这个正则表达式只允许字母数字字符。 如何检查字符串是否至少包含3个字母字符。 我当前的正则表达式, 我想强制执行字符串以确保至少有3个连续的字母字符;

  • 这里有一个问题:我想保护URI,直到获得第三方OAuth2的授权。基于http://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/config/annotation/web/configuration/EnableOAuth2Client.html,我有以下内容: 而且 最后 但这给

  • 我希望有一个用于密码匹配的regex,以确保密码包含: null 其他一些问题可以解决一些明确字母的脓肿问题。正如您在我接受的答案中所看到的,regex与我想要的并不接近。

  • 我正在使用Python和Flask对密码进行表单验证。密码需要包含至少一个大写字母和至少一个数字。 我目前失败的尝试...

  • 我需要这样一种验证,即我的字符串必须至少包含一个Unicode字母。将评估角色的角色。isLetter()为true。 比如说我要 我知道我可以使用角色循环。isLetter(),但我只是不想这么做。 这和这个完全不同,因为它只检查英文字母,但在我的例子中是一个Unicode字母。这根本不一样。