0

我正在使用正则表达式,我无法得到正确的结果。我需要获取前面有房子这个词的数字。示例:我有:

FLOWERS 527 办公室 1217房屋10
单向 614房屋 4-C
其他方式 371 部门 209房屋25 C
圣乔治 378 部门 808房屋3 C BLA BLA BLA

我是 ise (?<=\bCASA\s)\d+|\d+-\w\s\b,但我得到的只是数字并丢失了可能写如下的字母: HOUSE 10只是数字 HOUSE 4-C数字破折号字母 HOUSE 25 C数字空格字母 HOUSE 3 C BLA BLA BLA 数字空格字母 blablabla

可以使用什么正则表达式?

4

3 回答 3

2

这将返回后面的数字,HOUSE并且还会捕获下一个字符:

/HOUSE (\d+[\s\-]?[A-Z]?)\b/

在您提供的示例中,它将匹配:

  • 10
  • 4-C
  • 25℃
  • 3℃
于 2013-10-15T16:06:50.223 回答
2

尝试这个 : (?<=\bHOUSE\s)(?:\d+-\w|\d+\s\w|\d+)\b

注意。条件语句上的顺序很重要,第一个成功的匹配被采用,所以如果你有\d+|\d+-\w它,它只会匹配4 -C中的4,但\d+-\w|\d+会匹配4-C

http://regex101.com/r/gS0aO6

于 2013-10-15T16:08:04.433 回答
0
(?i)house\s+(\d+[-\s]?[a-zA-Z]?)\b

现场演示

于 2013-10-15T16:31:55.683 回答