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

匹配第一个和最后一个字符的正则表达式

张逸清
2023-03-14

我试图使用正则表达式来检查字符串中的第一个和最后一个字符是否是a-z之间的字母字符。

我知道这与第一个字符匹配:

/^[a-z]/i

但是我如何检查最后一个字符呢?

这:

/^[a-z][a-z]$/i

不起作用。我怀疑这两个条款之间应该有什么区别,但我不知道是什么!

共有3个答案

百里雅珺
2023-03-14
 var str = "Regular";
//following code should return true as first and last characters are same
var re = /(^[a-zA-Z])(.*)\1$/gi;

console.log(re.test(str); //true

Match 1 : Regular
Group 1 : (^[a-zA-Z]) = R
Group 2 : (.*) = egula
\1$ : Match the same what is caught in group 1 at the end = r
缑智敏
2023-03-14

您可以按如下方式检查第一个和最后一个字符,然后检查介于两者之间的任何字符:

/^[a-z].*[a-z]$/im

演示

岳研
2023-03-14

下面的正则表达式将匹配以字母字符开头和结尾的字符串。

/^[a-z].*[a-z]$/igm

a字符串也以字母字符开头和结尾,对吗?然后您必须使用下面的正则表达式。

/^[a-z](.*[a-z])?$/igm

演示

说明:

^             #  Represents beginning of a line.
[a-z]         #  Alphabetic character.
.*            #  Any character 0 or more times.
[a-z]         #  Alphabetic character.
$             #  End of a line.
i             #  Case-insensitive match.
g             #  Global.
m             #  Multiline
 类似资料:
  • 所以我想用正则表达式匹配第一个数字和最后四个数字。 我可以使用获取最后4个数字,但无法将第一个和最后四个数字合并在一起。尝试了多种组合。

  • 我有一根这样的绳子 余额:“5048543747”,余额:“5119341413”,帐号:“0001000918”, 我使用了REGEX (.*?), 结果我收到的第一个子字符串是 余额:“5048543747” 实际上,我想要得到的结果是数组包括 { 余额:“5048543747” Baldefovd:“5119341413” 账号:“0001000918” } 有人能帮我吗。多谢。 编辑 我使

  • 我需要使用通配符类型搜索筛选一组字符串,如下所示: 寻找应该匹配你好,但不是Helo 查找应该匹配"pant"和"想要"但不匹配"ant" 寻找应该匹配"吉普赛人"和"典型" 代表一个或多个字符。我不介意手写或基于正则表达式的搜索。有什么想法吗?典型的。NET方法的通配符匹配0或更多,但我需要1个或更多字符。我该怎么做?

  • 问题内容: 我想获得正则表达式的第一场比赛。 在这种情况下,我得到了一个列表: [‘33’,‘44’] 我可以提取列表的第一个元素: ‘33’ 但这仅在至少有一个匹配项的情况下有效,否则我将收到错误消息: IndexError:列表索引超出范围 在这种情况下,我可以定义一个函数: 是否有一种无需定义新功能即可获得该结果的方法? 问题答案: 您可以通过添加默认值到您的正则表达式中: 也可以与其他人指

  • 根据下面的示例,我有一个正则表达式模式。 但是,作为一个一次性的派生,如果只有一个模式(匹配第一个实例的空白行&模式上方的一个空格),我可以让下面的内容匹配。 http://regex101.com/r/ey0ic7 但是,如果模式位于第一行,则没有匹配。

  • 这工作正常,所以如果歌曲名称是这是*名称,它将创建别名。但是,如果名称在开头或结尾有特殊字符它将创建 - 在两端创建连字符。