正则表达式,用于包含“。”的字母数字字符串字符

时间:2018-07-02 14:30:58

标签: regex

我无法找到合适的正则表达式来匹配任何不以某种条件开头和结尾的字符串。

这符合

AS.E
23.5
3.45

这不匹配

.263
321.
.ASD

正则表达式可以是字母数字字符,并带有可选的“。”。字符,并且必须在2-4(最小2个字符,最大4个字符)的范围内。

我能够创建一个->

^[^\.][A-Z|0-9|\.]{2,4}$

但是,我无法实现蒙版'。正则表达式末尾的字符。

谢谢。

3 个答案:

答案 0 :(得分:2)

也许不是最优化的,但是可行的。逐步创建:

  1. 第一个字符应为字母数字

    ^[a-zA-Z0-9]

  2. 0、1或2个字符的字母数字或.,但不匹配字符串的结尾

    [a-zA-Z0-9\.]{0,2}

  3. 与字符串结尾的字母数字字符匹配

    [a-zA-Z0-9]$

  4. 将所有这些连接起来以获得您的正则表达式

    ^[a-zA-Z0-9][a-zA-Z0-9\.]{0,2}[a-zA-Z0-9]$

编辑: :此正则表达式允许多个点(最多2个)

答案 1 :(得分:1)

如果我猜对了,您想匹配所有的单词

  • 2至4个字符之间的长度...
  • ...,并以[A-Z0-9.]中的字符开头和结尾...
  • ...,中间有.中的字符...
  • ...并且不是(?<=^|[^.])[A-Z0-9][A-Z0-9.]{0,2}[A-Z0-9](?=$|[^.]) 之前或之后。

尝试使用此正则表达式来匹配文本中的所有这些子字符串:

AA

不过,请注意,这将与.AAAA.中的(^|[^.])[A-Z0-9][A-Z0-9.]{0,2}[A-Z0-9]($|[^.]) 相匹配。如果您不想参加此比赛,请提供您要求的更多详细信息。

如果您只对匹配数感兴趣,而对匹配的字符串不感兴趣,则可以使用

^[A-Z0-9][A-Z0-9.]{0,2}[A-Z0-9]$

如果您有一个字符串,并且想知道该字符串是否完全匹配,请使用

.

如果比赛中最多有[A-Z0-9.]{0,2}个,请将([A-Z0-9]?[A-Z0-9.]?|[A-Z0-9.]?[A-Z0-9]?)部分替换为text()

答案 2 :(得分:0)

您可以使用此模式来匹配您说的话

^[^\.][a-zA-Z0-9\.]{2,4}[^\.]$

在此处检查结果。 https://regex101.com/r/8BNdDg/3