【问题标题】:How to get this field in regex using a pattern?如何使用模式在正则表达式中获取此字段?
【发布时间】:2013-11-23 16:46:51
【问题描述】:

Regex 对我不是很友好,给我 0 个匹配项哈哈。

基本上,我有一个大字符串,其中包括:

                            <td class="fieldLabel02Std">FIELD_LABEL</td>
                            <td class="fieldLabel02Std">


                                    VALUE

                            </td>

感谢 FIELD_LABEL,我应该能够在更大的字符串中找到它。 “VALUE”是我想要得到的。

我试过这个模式

String field = "FIELD_NAME";
String pattern = field + @"[\s\S]*?\<td[\s\S]*?\<\/td\>";

那没用。我在想这个: 获取 field_name + 一些字符 + => 这将能够给我 VALUE。

这给了我 0 个匹配项。

非常感谢您的帮助!

【问题讨论】:

标签: regex find match


【解决方案1】:

你可以这样使用:

FIELD_LABEL</td>[\n\r\s]*<td class="fieldLabel02Std">[\n\r\s]*(.+?)[\n\r\s]*</td>

通常使用正则表达式来解析 HTML 是不好的,但如果您对已知的 html 格式有一个小问题,并且您不介意当他们更改逗号时这是否停止工作......

【讨论】:

    【解决方案2】:

    考虑以下正则表达式...

    (?<=FIELD_LABEL[\S\s]*?\<td.*?\>[\S\s]*?)\w+(?=[\S\s]*?\</td\>)
    

    祝你好运!

    【讨论】:

      【解决方案3】:

      这就是你要找的吗?

      FIELD_LABEL&lt;\/td&gt;[.\s]*?&lt;td.*?&gt;[.\s]*?VALUE[.\s]*?&lt;\/td&gt;

      或

      String pattern = field + @"&lt;\/td&gt;[.\s]*?&lt;td.*?&gt;[.\s]*?VALUE[.\s]*?&lt;\/td&gt;";

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-24
        • 1970-01-01
        • 2012-12-30
        • 2017-04-11
        相关资源
        最近更新 更多