regex - 如何匹配正则表达式中至少包含一个字母和一个 * 的字符串

标签 regex

我想使用正则表达式匹配至少包含一个字母和一个 * 的 2~4 长度字符串。

例如,测试字符串如下:

124 adbaad aa1 efd f*ad *** af 848



(输入的特殊语法不会包含更长的相似词,例如 abc*def)

我要配 f*ad 在字符串中。
[a-z*]{2,4}

我尝试了上面的正则表达式,但没有 * 的字符串也匹配。

我已经在互联网上搜索了 2 天,但找不到解决方案。

我怎样才能实现目标?

最佳答案

在模式的开头,先行查找 0-3 个字母字符,然后是 * , 并向前看 0-3 * s 后跟一个字母字符。这确保了比赛从一个点开始,后跟至少一个字母和至少一个 *在接下来的 4 个字符内。然后,匹配 [a-z*]{2,4} :

(?=[a-z]{0,3}\*)(?=\*{0,3}[a-z])[a-z*]{2,4}

https://regex101.com/r/90A8rY/1

从问题中不清楚,但如果您只想匹配独立单词,请在模式的开头和结尾处向后和向前查找空格(或字符串的边缘):
(?<= |^)(?=[a-z]{0,3}\*)(?=\*{0,3}[a-z])[a-z*]{2,4}(?= |$)
^^^^^^^^                                           ^^^^^^^

https://regex101.com/r/90A8rY/3

关于regex - 如何匹配正则表达式中至少包含一个字母和一个 * 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56198940/

相关文章:

C# dotnetcore 正则表达式在给定长且完整的字符串时挂起

python - 如何匹配不是 4 的倍数的空格?

Python RegEx-刽子手算法

javascript - requirejs 中的通配符/正则表达式映射

javascript - 需要帮助理解正则表达式在 JavaScript 中的作用

r - 在字符串的特定位置添加前导 0 (R)

regex - 如何计算 Perl 中的字符数?

C# - 在另一个字符串中查找一组字符串中的一个的最快方法

Python 正则表达式 行内的任一/或

java - 数字和任意长度的正则表达式