我需要在以下条件下使用C#中的正则表达式匹配字符串:
如果这些先决条件中的任何一个被打破,比赛就不会进行。
以下是我目前掌握的情况:
^\b([A-z]{1})(([A-z0-9 ])*([A-z]{1}))?\b$
下面是一些应该匹配的测试字符串:
还有一些不应该匹配的(注意空格):
等
任何建议都将不胜感激。
我的版本,再次使用前瞻:
^(?=.{1,15}$)(?=^[A-Z].*)(?=.*[A-Z]$)(?![ ]{2})[A-Z0-9 ]+$
解释:
^ start of string
(?=.{1,15}$) positive look-ahead: must be between 1 and 15 chars
(?=^[A-Z].*) positive look-ahead: initial char must be alpha
(?=.*[A-Z]$) positive look-ahead: last char must be alpha
(?![ ]{2}) negative look-ahead: string mustn't contain 2 or more consecutive spaces
[A-Z0-9 ]+ if all the look-aheads agree, select only alpha-numeric chars + space
$ end of string
这也需要IgnoreCase选项设置
试试这个正则表达式: -
"^([a-zA-Z]([ ](?=[a-zA-Z0-9])|[a-zA-Z0-9]){0,13}[a-zA-Z])$"
说明:-
[a-zA-Z] // Match first character letter
( // Capture group
[ ](?=[a-zA-Z0-9]) // Match either a `space followed by non-whitespace` (Avoid double space, but accept single whitespace)
| // or
[a-zA-Z0-9] // just `non-whitespace` characters
){0,13} // from `0 to 13` character in length
[a-zA-Z] // Match last character letter
更新:-
要处理单个字符,您可以将第一个字符之后的模式设置为可选,如注释中@Rawling
所指出的那样:-
"^([a-zA-Z](([ ](?=[a-zA-Z0-9])|[a-zA-Z0-9]){0,13}[a-zA-Z])?)$"
^^^ ^^^
use a capture group make it optional
您应该使用< code>lookaheads
|->matches if all the lookaheads are true
--
^(?=[a-zA-Z]([a-zA-Z\d\s]+[a-zA-Z])?$)(?=.{1,15}$)(?!.*\s{2,}).*$
-------------------------------------- ---------- ----------
| | |->checks if there are no two or more space occuring
| |->checks if the string is between 1 to 15 chars
|->checks if the string starts with alphabet followed by 1 to many requireds chars and that ends with a char that is not space
你可以在这里尝试一下
问题内容: 我正在寻找Java中与字符串中所有空白字符匹配的正则表达式。“ \ s”仅匹配一些,不匹配和类似的非ASCII空格。我正在寻找与Java字符串中可能出现的所有(常见)空白字符匹配的正则表达式。 [编辑] 需要说明的是:我不是指字符串序列“ ”我是指通常用“ ” 表示的单个Unicode字符U + 00A0 ,例如在HTML中,以及所有其他具有类似空格的unicode字符,例如“ NAR
我试图匹配包含字母数字、连字符、下划线和空格的字符串。 连字符、下划线、空格和数字是可选的,但第一个和最后一个字符必须是字母。 例如,这些都应该匹配: 我试过这个: 但它在开始/结束时与空格、下划线或连字符匹配,但它应该只允许在两者之间。
其中,我需要包括连字符和空格。 这意味着还必须可以输入值“”。
问题内容: 我需要将Python中的一个表达式与仅匹配偶数个字母出现的正则表达式进行匹配。例如: 偶数应匹配。 问题答案: 试试这个正则表达式: 并且如果s不需要是连续的:
我有以下正则表达式,我将其解释为一种模式,它将匹配仅由字母数字字符和连字符组成的字符串。 问题是这个正则表达式也匹配空格,这在子域名中显然是不可取的。 对于加分,这是验证子域名的合适方法吗?我不确定哪些特殊字符是允许的,但我想我会保持简单,只允许连字符。还有什么我需要检查的吗?例如,最大长度?
要匹配至少包含一个字母或数字的字符串,JavaScript正则表达式是什么?这至少需要一个字母数字字符(至少一个字母或至少一个数字)。