簡體   English   中英

我該如何處理此正則表達式問題?

[英]How do I deal with this regex issue?

我需要從一個隱藏的HTML字段中提取一個值,已經弄清楚了一點,但是我目前陷入困境。

我的正則表達式看起來像:

<input type="hidden" name="form_id" value=".*"

但這會從HTML中提取整個字符串。

該字符串如下所示:

<input type="hidden" name="form_id" value="123"/>

我需要從字符串中提取“值”,它總是在變化,但是“名稱”始終是相同的。 有沒有一種方法可以提取它而不做另一個表達式? 感謝您的幫助。

(?<=<[^<>]+?name="form_id"[^<>]+value=")(.*)(?=")

我只是把這些放在一起。 基本上,您想否定請求中的任何結尾>。 因此,您可能想做這種性質的事情:

<[^>]*hidden[^>]*value="(.*)"[^>]*>

然后閱讀第一個捕獲組( Delphi指令 )。 盡管它確實假定“隱藏”和“值”上的位置順序,但仍使其盡可能合理地通用。

為了在不考慮訂單的情況下找到價值,您可以按照建議使用稍微干凈的前瞻:

 ^(?=.*name="form_id").*value="([^"]*)".*$

<[a-zA-Z"= _^>]*value="(\\d*)"/>
我已經為您的示例進行了測試。
如果只想提取輸入標簽,則可以編寫:

<input[a-zA-Z"= _^>]*value="(\d*)"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM