如何创建正则表达式以匹配总长度至少为n的多个单词?

时间:2011-02-28 22:53:45

标签: regex

我正在尝试从自由文本中提取电话号码。 单词编号的一般格式为“0800”,后跟至少6个字母数字字符。 如果需要多个单词才能获得至少6个字母数字字符,则返回完整的单词。

我有的例子:
'PH 0800 OASIS CLEARWATER' - 返回'0800 OASIS CLEARWATER' 'Freephone 0800 RaceRock TM' - 返回'0800 RaceRock' '电话:0800 7 5555 7' - 返回'0800 7 5555 7'

我正在使用oracle 10.2.0.3(10g)

欢呼声

1 个答案:

答案 0 :(得分:0)

以下正则表达式应该有效:

(0800(\s*[a-zA-Z0-9]){6}[a-zA-Z0-9]*)

它首先匹配0800,然后是6个alfanumeric字符,在每个字符之前你可以有多个空格。在第六个字符后,您匹配其他字符,以获得整个单词。

确保使用^$,因为您显然希望它可以在其前面和之后有字符串。