我使用正则表达式,我无法得到正确的结果。 我需要获得前面带有单词house的数字。 例: 我有:
FLOWERS 527 OFFICE 1217 HOUSE 10
ONE WAY 614 HOUSE 4-C
其他方式371部门209 HOUSE 25 C
SAINT GEORGE 378 DEPARTMENT 808 HOUSE 3 C BLA BLA BLA
我是(?<=\bCASA\s)\d+|\d+-\w\s\b
但是我得到了这个号码并且丢失了可能写成如下的字母:
HOUSE 10 只是号码
HOUSE 4-C 数字破折号
HOUSE 25 C 号码空格字母
HOUSE 3 C BLA BLA BLA号空间字母blablabla
正则表达式可以使用什么?
答案 0 :(得分:2)
这将返回HOUSE
之后的数字,并且还会捕获下一个字符:
/HOUSE (\d+[\s\-]?[A-Z]?)\b/
在您给出的示例中,它将匹配:
答案 1 :(得分:2)
试试这个:
(?<=\bHOUSE\s)(?:\d+-\w|\d+\s\w|\d+)\b
NB。条件语句中的顺序很重要,并且第一次成功匹配,所以如果你有\d+|\d+-\w
,它只会匹配 4-C 中的 4 但是\d+-\w|\d+
将匹配 4-C
答案 2 :(得分:0)
(?i)house\s+(\d+[-\s]?[a-zA-Z]?)\b