具有重复无序匹配的简单正则表达式
Simple regex with repeated unordered matches
我有这个正则表达式
/^[a-z]{1,}( (?=[a-z])){0,}(_(?=[a-z])){0,}[a-z]{0,}$/
我想匹配
ag_b_cf_ajk
或
zva b c de
或
hh_b opxop a_b
因此,任何由单个空格或下划线分隔的字符标记。
(在上面的正则表达式中,我们有一个文字空格,这是合法的,并且我们有前瞻,确保空格或下划线后跟一个字符)。
问题是,我上面的正则表达式只匹配第一个空格或下划线,如下所示:
axz_be
axz be
但这些都失败了
axz_be_j
axz be j
我相信我错过了一些正则表达式的概念来解决这个问题,因为我在过去的几个小时里一直在尝试!
似乎你可以使用
^[a-z]+(?:[_ ][a-z]+)*$
查看正则表达式演示
正则表达式匹配
-
^
- 字符串的开头 -
[a-z]+
- 一个或多个小写 ASCII 字母 -
(?:[_ ][a-z]+)*
- 零个或多个序列:-
[_ ]
- 空格或下划线 -
[a-z]+
- 一个或多个小写 ASCII 字母
-
-
$
- 字符串结尾
如果空格或下划线必须至少出现一次,请使用+
量词而不是*
:
^[a-z]+(?:[_ ][a-z]+)+$
^
若要向下划线和连字符添加多字符替代项,需要引入另一个非捕获组:
^[a-z]+(?:(?:[_ ]|'[])[a-z]+)+$
查看另一个正则表达式演示
相关文章:
- 查找大写字母的简单正则表达式是返回小写字母
- JavaScript中的简单正则表达式适用于所有浏览器,但Safari除外
- 需要您的帮助来获得一个简单的javascript正则表达式
- 用于分析带引号的字符串的更简单的正则表达式
- 为什么这个简单的正则表达式不起作用
- 具有重复无序匹配的简单正则表达式
- 使用简单的正则表达式的奇怪结果
- JavaScript 我非常简单的正则表达式有什么问题
- 带有等号的简单正则表达式,但不想使用 split
- 带有url的简单javascript正则表达式
- 简单的JS正则表达式替换
- 简单的JS正则表达式提取括号之间的单词
- 我可以使用什么正则表达式来查找简单的正则表达式
- 请为我写这个简单的正则表达式
- 如何使用更简单的正则表达式检查,chrome扩展使用的url
- 简单有效的正则表达式不匹配
- 简单的javascript正则表达式条带数字
- 替换所有But的简单正则表达式
- 简单正则表达式模式,提取数字
- 简单正则表达式模式匹配