1

我有一个包含如下名称和 URL 的表:

<tr>
  <td>name1</td>
  <td>www.url.com</td> </tr>
<tr>
  <td>name2</td>
<td>www.url2.com</td> </tr>

我想选择表中的所有 URL-tabledata。我试过:

<td>w{3,3}.*(</td>){1,1}

但是这个表达式并没有在第一个“停止” </td>。我得到:

<td>www.url.com</td> </tr>
    <tr>
    <td>name2</td>
    <td>www.url2.com</td>

结果。我的错误在哪里?

4

2 回答 2

1

有几种方法可以匹配 URL。我会根据您的需要尝试最简单的方法:只需更正您的正则表达式。您可以改用这个:

<td>w{3}.*?</td>

解释:

<td>          # this part is ok
w{3,3}        # the notation {3} is simpler for this case and has the same effect
.*            # the main problem: you have to use .*? to make .* non-greedy, that
                is, to make it match as little as possible
(</td>){1,1}  # same as second line. As the number is 1, {1} is not needed
于 2013-06-29T11:07:01.270 回答
0

你的正则表达式可以是

\b(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]*[-A-Za-z0-9+&@#/%=~_|]

或者

"((((ht{2}ps?://)?)((w{3}\\.)?))?)[^.&&[a-zA-Z0-9]][a-zA-Z0-9.-]+[^.&&[a-zA-Z0-9]](\\.[a-zA-Z]{2,3})"

请参阅此链接-检查字符串是否为有效 URL 的最佳正则表达式是什么?. 有很多答案可用。

于 2013-06-29T10:57:39.613 回答