regex - 我需要对此正则表达式进行哪些修改才能仅在字符串中包含数字后才允许使用小写字母?

标签 regex

我有这个正则表达式:

^[a-z0-9](?:[a-z0-9]+)*$

如何修改它,以便小写字母只能出现在我的字符串中(如果有数字)并且只能出现在该数字之后?

这些是预期的匹配:

AA
AB
1a
1b
1A
1B
A1A
A1a
AB1
AB2
AB1a
AB2b

这些会失败:

Aa
Ab
a1
b1
Ab1
a1a

最佳答案

我会使用正向回顾来断言数字必须位于任何小写字母之前:

^(?:[A-Z0-9]|(?<=[0-9])[a-z])*$

Demo

关于regex - 我需要对此正则表达式进行哪些修改才能仅在字符串中包含数字后才允许使用小写字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65015627/

相关文章:

java - 获取在正则表达式中进行匹配的组的编号/ID

python - 正则表达式在在线正则表达式解释器中匹配,但在python中不匹配

regex - 如何使用sed根据每场比赛替换每场比赛?

Python正则表达式获取日期形式的日志文件

regex - 使用正则表达式查找和替换字符串中可变数量的项目

c# - c# 中的正则表达式 - 英国邮政编码

java - 正则表达式在 Android 中不起作用,但在 Java 中运行良好

java - 正则表达式前缀,只捕获奇数个实例?

regex - 如何在 LEX/FLEX 中编写非贪婪匹配?

c# - C#正则表达式中的"Enter"问题