正则表达式连续4或5位数后跟一个较长字符串中的字母?

时间:2012-08-13 21:18:37

标签: regex notepad++

对于像

这样的文字
1" 77568T86 34 
2" 5347A1Q 456

我想返回字符串77568T5437A

我猜我想要一些像\d{4,5}

这样的东西

编辑:感谢所有回复。不幸的是,即使它们与在线正则表达式测试人员合作,也没有任何东西在记事本++中工作。

我认为问题是notepad ++对{}的处理,因为(\d[A-Z])找到匹配。

么?

4 个答案:

答案 0 :(得分:3)

是的,你走在正确的轨道上。只需在数字组后面添加一个[A-Z](如果它不区分大小写,请使用[A-Za-z]。)

\d{4,5}[A-Z]

如果它应该以空格或某个边界开头,则前置\b

\b\d{4,5}[A-Z]

我不熟悉Notepad ++如何处理匹配捕获组,但很可能你会想要在()

中包围整个事物
\b(\d{4,5}[A-Z])

答案 1 :(得分:1)

你的数字是正确的;你只需要在表达式的末尾添加一个字母类:

\d{4,5}[a-zA-Z]

(这允许大写或小写;如果你只想要大写的话,删除a-z

答案 2 :(得分:1)

这应该有效:

\d{4,5}[A-Z]

See for yourself

答案 3 :(得分:0)

使用此正则表达式(?i)\b\d{4,5}[a-z]