正则表达式具有转义和限制

时间:2018-08-08 09:19:12

标签: regex

我现在有一个正则表达式,它将查找包含字母和数字的单词

(?<=|\W)(\d+[A-Z]+\w*|([A-Z]+\d+\w*))

例如,它将找到apple6或$ 6ap7le8而忽略12345或applesix

我正在尝试将两件事加在一起:

第一个是一个限制,因此,如果单词长度为4-8,则只会检查符合上述条件的单词,因此它将忽略ap1或apple547474

接下来,我希望它忽略所有带有\或。

的单词。

我希望我的问题很清楚

谢谢大家

已编辑,可解决缺少的问题

1 个答案:

答案 0 :(得分:1)

尝试以下操作:(?=\S*\d)(?=\S*[^\d\s])(?!.*[.\\])(?<=\s|^)\S{4,8}(?=\s|$)

Demo

说明:

基本正则表达式为(?<=\s|^)\S{4,8}(?=\s|$),它匹配由空格/行首/行尾围绕的非空白字符。然后,使用先行添加一些约束。进行第一次前瞻时,您强制显示一些数字。第二个字符与非数字字符相同,第三个字符避免非所需字符(.\