这是我的正则表达式
Serial no
sheet no
Sheet Number
输入:
Serial no : 2424ABC
Sheet No 5 (Without colon)
Sheet No : 5
Serial No = 5335ABC
要求是解析包含以下内容的文本:
{{1}}
如何转义赋值字符(如果可用)并解析下一个字母数字字符?
答案 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]+)
您可以在第一组中的模式中添加更多案例。我介绍了由|
分隔的两个案例。
您可以在此模式的最后一组中找到字母数字值。
请注意,此模式是作为不区分大小写的模式编写的。