-2

从这个 html 中提取文本“28 N John Young Pkwy”的正则表达式是什么。

28 N John Young Pkwy<br />              
<span class="locality">Kissimmee</span>,                    
<span class="region">FL</span>                  
<span class="postal-code">34741</span>

地址每次都会有所不同,因此我正在寻找与
标签前的通用文本匹配的内容。数据格式始终相同。我正在使用 JavaScript。我也在研究如何将它输入到构造函数中。它应该是这样的:

var re = new RegExp("^.*?(?=<br />)");
var m = re.exec(textabove);
4

3 回答 3

1

/^[^<]*/应该可以正常工作(您可以在 regexpal.com 上进行验证——删除斜杠)

编辑:这仅<在您正在提取的数据中没有数据时才有效,但它比使用积极前瞻和/或惰性的其他答案更有效。

编辑2:在这里,有一个jsfiddle

于 2013-02-01T20:23:24.920 回答
0

这在 javascript(1.5 或更高版本)中并不难做到:

<div id='address'>
    28 N John Young Pkwy<br />              
    <span class="locality">Kissimmee</span>,                    
    <span class="region">FL</span>                  
    <span class="postal-code">34741</span>
</div>
var re = new RegExp(".*?(?=<br>)");
var m = re.exec($('#address').html());
alert(m[0]);

请参阅此处的示例代码:http: //jsfiddle.net/dnx2B/

不过,老实说,没有正则表达式会容易得多:

alert($('#address')[0].firstChild.data); // returns exactly the same thing.
于 2013-02-01T20:20:55.090 回答
0

如果您只是在寻找 之前的文本<br>,那么这样的事情应该可以工作:

^(.*?)<br
于 2013-02-01T20:25:53.867 回答