在以下字符串中找到“x”前后四位数的正则表达式是什么:
234a2343x2834o234 --> 2343, 2834
iur3333x44445555 --> 3333, 4444
owier3423x23sd --> 3423, no match
答案 0 :(得分:6)
使用Perl正则表达式:
/(\d{4})?x(\d{4})?/
请注意每个4位数字的捕获组和?
。您没有指定,但如果左侧的数字是强制性的,请删除第一个?
。
答案 1 :(得分:0)
(\d{4})x(\d{4})?
适用于Perl兼容的正则表达式。
答案 2 :(得分:0)
([0-9]{4})?x([0-9]{4})?
参见rubular:http://www.rubular.com/r/PhsyDdc1ad
这将返回第一个x
之前和之后的四位数字。如果少于4位,如第三个示例所示,将有一个空组,但正则表达式仍将匹配,可能会返回x
另一侧的数字。
请注意,某些正则表达式引擎定义字符组\d
以包含数字0,1,...,9。如果您正在使用其中一个,则可以将表达式压缩为:
(\d{4})?x(\d{4})?