我有一个正则表达式,我认为工作正常,直到现在。我需要匹配一个可选角色。它可能在那里,也可能不在。正则表达式如何匹配一个可选字符
这里有两个字符串。顶部的字符串是匹配的,而下部的则不匹配。在较低的字符串中没有单个字母是导致它失败的原因。
我想在开始的5位数字之后得到单个字母,如果不存在,则继续获取字符串的其余部分。这封信可以是A-Z
。
如果我从正则表达式中删除([A-Z]{1}) +.*? +
,它将匹配除信件外所需的所有内容,但它很重要。
20000 K Q511195DREWBT E00078748521
30000 K601220PLOPOH Z00054878524
这是我正在使用的正则表达式。
/^([0-9]{5})+.*? ([A-Z]{1}) +.*? +([A-Z]{1})([0-9]{3})([0-9]{3})([A-Z]{3})([A-Z]{3}) +([A-Z])[0-9]{3}([0-9]{4})([0-9]{2})([0-9]{2})/
Tim,我真的不确定,因为我没有写这个正则表达式。对于正则表达式我还是很新的。如果你看到更好的写作方式,我愿意接受建议。 – jim 2010-10-24 06:45:37
蒂姆,你的例子适用于两个字符串,不管我在那个位置是否有一个字母。谢谢。 – jim 2010-10-24 07:00:51