正则表达式为文本后的字母数字

时间:2015-06-08 09:34:41

标签: regex

这是我的正则表达式

Serial no
sheet no
Sheet Number

输入:

Serial no : 2424ABC
Sheet No 5 (Without colon)
Sheet No : 5
Serial No = 5335ABC

要求是解析包含以下内容的文本:

{{1}}

如何转义赋值字符(如果可用)并解析下一个字母数字字符?

4 个答案:

答案 0 :(得分:1)

这应该有效:

(\b(serial|sheet))+(\s(number|code|no))+?\b\s*[:=#~– ]*(.*)

您可以在此处试用:https://regex101.com/r/rO2cX1/1

答案 1 :(得分:0)

要转义任务角色,请执行\=

要解析字母数字字符,请[a-zA-Z0-9]*\w*

答案 2 :(得分:0)

如果=是可选的,您可以将正则表达式中的\s替换为[=\s]以允许空格或等号。也许更好并匹配您的示例,请尝试\s=?\s*

如果单词和数字之间可能包含字符,则可能使用\s[-=#~_]?\s*。注意-在开始时进行,否则它将被解释为一系列字符。即[a-f]表示[abcdef],即这六个字符中的任何一个,而[-af]表示这三个字符中的任何一个。

因此正则表达式变为:

(\b(serial|sheet))+(\s[-=#~_]?\s*(number|code|no))+?\b

答案 3 :(得分:0)

尝试以下模式:

(serial\s+no|sheet\s*no)(\s*\:\s*)([a-z0-9]+)

Demo

您可以在第一组中的模式中添加更多案例。我介绍了由|分隔的两个案例。

您可以在此模式的最后一组中找到字母数字值。

请注意,此模式是作为不区分大小写的模式编写的。