4

私はが初めてです。私の問題を十分に説明できることを願っています。

正規表現を使用して、xml 要素から ItemID 属性を抽出しようとしています。次に、別のリクエストで使用します。これは、ItemID を抽出しようとしている XML 応答です。

<?xml version="1.0" encoding="UTF-8"?>
<Promise >
 <SuggestedOption>
      <Option TotalShipments="1">
           <PromiseLines TotalNumberOfRecords="1">
                <PromiseLine ItemID="Col_001" >
                     <Assignments>
                          <Assignment InteractionNo="1" >
                          </Assignment>
                     </Assignments>
                </PromiseLine>
           </PromiseLines>
     </Option>
 </SuggestedOption>
</Promise>

正規表現エクストラクタを次のように設定しました。

Reference Name: item
Regular Expression: .?ItemID=(.+?)*
Template: $1$
Match No.: 1

2 番目のリクエストでは、ItemID を次のように設定しました ... ItemID=${item} ...

「Col_001」に設定されたデフォルト値を使用すると、正常に動作することがわかっています。したがって、明らかに私の式に問題があります。

4

3 に答える 3

4

次の表現を試してください。

\bItemID\s*=\s*"([^"]*)"

説明

NODE                     EXPLANATION
--------------------------------------------------------------------------------
  \b                       the boundary between a word char (\w) and
                           something that is not a word char
--------------------------------------------------------------------------------
  ItemID                   'ItemID'
--------------------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  =                        '='
--------------------------------------------------------------------------------
  \s*                      whitespace (\n, \r, \t, \f, and " ") (0 or
                           more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  "                        '"'
--------------------------------------------------------------------------------
  (                        group and capture to \1:
--------------------------------------------------------------------------------
    [^"]*                    any character except: '"' (0 or more
                             times (matching the most amount
                             possible))
--------------------------------------------------------------------------------
  )                        end of \1
--------------------------------------------------------------------------------
  "                        '"'
于 2012-11-05T00:48:09.747 に答える
1

別のオプションは、これを行うために xpath エクストラクタを使用することです。

于 2012-11-05T06:53:39.650 に答える
1

次の正規表現を試してください。

ItemID="(.+)"
于 2014-11-27T13:13:44.763 に答える