答えて
を:「テストデータ:((test param={p} value={v}))
入力文字列が続く」私はあなたの本当の問題は、それを達成する方法であると仮定し、私は必要
出力文字列を:「テストデータ<test param="p" value="v"/>
入力文字列が続きます」 、および要件はかなり剛性であるように思わ検索/置換、ここにあなたのケースのために働くものです:
Find: ([^:]*): <([^=]*)="([^"])"([^=]*)="([^"])"/>
Replace: $1: (($2={$3}$4={$5}))
検索式は次のように分けることができます
([^:]*) # Capture zero or more characters that ARE NOT a colon
: < # Match a colon, a literal space, then a less-than sign
([^=]*) # Capture zero or more characters that ARE NOT an equals sign
=" # Match an equals sign, then a double quote
([^"]) # Capture zero or more characters that ARE NOT a double quote
" # Match a double quote
([^=]*) # Capture zero or more characters that ARE NOT an equals sign
=" # Match an equals sign, then a double quote
([^"]) # Capture zero or more characters that ARE NOT a double quote
"/> # Match a double quote, a forward slash, then a greater-than sign
正規表現内の括弧()
は、かっこの内容に一致する文字を「取得」することを意味します。カッコ内にないものはすべて「一致」しますが、検索および置換中に破棄されます。これは、name
,attribute1
およびvalue1
を<name attribute1="value1"/>
から抽出して別のパターンのテキストにするようなパターンからデータのビットを抽出する場合に便利です。
C#では、System.Text.RegularExpressions.Regexオブジェクトを使用して、正規表現を使用して一致または置換します。 Iは、(正規表現オブジェクトのインスタンス用)構文/署名が括弧()
で囲まれたマッチの部分を指すregexObject.Replace(input As String, replacement As String) As String
交換式は$1
が含まれ、$2
、等であると考えています。したがって、$1
(交換式の)(一致式から)最初のグループ([^:]*)
によりマッチしたテキストを挿入する
この組み合わせは、このテキストを向けるだろう。
「試験データ:<試験PARAM = "p" value = "v"/> "続きを読む何とか何とか何とか "テストデータ:<テストのparam =" P "値= "V"/ >" とし、いくつかのより多くのテキスト...このテキストに
:
「テストデータ: ((test param = {p} value = {v})) "more text。何とか何とか何とか「テストデータ:((テストのparam = {P}値= {V}))」とし、いくつかのより多くのテキスト...
偉大な正規表現について学ぶためのリソース(と私はについて学びました私が知っているものの90%)はRegular-Expressions.infoであり、RegexBuddyという関連ツールは正規表現の構築、テスト、デバッグにも最適です。
正しく動作します。どのように([^:] *):置き換え作業のFindと$ 1の部分で説明できますか? –
3番目の段落の '$ 1'について説明しようとしましたが('置換式には...が含まれています ')、それが明確でないか、何かが欠けているかどうかはわかりません。正規表現の内部を深く掘り下げることなく、他に何が追加できるのか分かりません:Dか、マッチパート '([^:] *):'についてもっと質問していますか? –
$ 1の隣にあるコロンは、正規表現と同じですか?そしてはい、何か([^:] *):意味します。申し訳ありませんが、私の正規表現のスキルはかなり弱いです。別々に各部分を照合しているのであれば、なぜ最初に([^:] *):が必要ですか?それは私を混乱させている。 –
- 1. Boost Regexで使用する文字列をエスケープする方法
- 2. jetty RewriteRegexRuleを使用してURLのクエリ文字列を変更する方法
- 3. JavaでRegexを使用してマップ文字列を分割する方法
- 4. regexを使用して文字列を長さでフィルタリングする
- 5. .NETでregexを使用して文字列を置換する
- 6. JSON.parseを使用してJSON.parseを使用してJSON文字列をAPI URLに変更する方法
- 7. RegExを使用してVARCHAR列の値を更新する方法は?
- 8. RegExと '\'文字を使用してJSONを正しく解析する方法
- 9. emoji❤withで文字列を変換する方法、regexでこのURLのように文字列に変換
- 10. RegExを使用して部分文字列を取得
- 11. 文字列をHtmlAgilityPackドキュメントパスとして使用する方法は?
- 12. regexを使用して文字列のキー=値形式を検証する方法は?
- 13. Visual Studioプロジェクトをワイド文字列を使用して普通の文字列に変換する方法
- 14. iOSのRegexを使用して1つの文字列から文字列を除外する
- 15. regexを使用して複数の可能な文字列の部分文字列を取得する
- 16. 長さ/文字列の変更を変えてワードラップする方法は?
- 17. Resharperを使用してXAML文字列をローカライズする方法
- 18. vb.netとRegExを使用してネストされた文字列内の文字列を検索する
- 19. regexを使用して大きな文字列内の部分文字列を取得する
- 20. JavaScriptを使用してhtmlテーブルを文字列に変換する方法
- 21. C#でXSLTを使用してxml文字列を変換する方法
- 22. ショートカットを使用してプロットの列を変更する方法
- 23. 文字列をインデックスとして使用する文字列変数のPHP isset()
- 24. Java Regexを使用して別の部分文字列を持つサブ文字列を見つける
- 25. regex lookaheadを使用して入力文字列の合計長を制限する方法
- 26. JAVA REGEXを使用して任意の文字列を検索します
- 27. 文字列変数からリスト名を使用する方法
- 28. Java Regexを2つの文字列に使用する
- 29. strpos()の文字列にregexを使用する
- 30. JavaScriptを使用してHTMLページ内の文字列の色を変更する方法
RegExまたは交換用のサポートが必要ですか?これまでのコードを見せてください。 – RedFilter
ちょっと詳細を見てください - 近くにあるが一致してはならないものは何ですか? –
私が持っているのは、パターンにマッチする正規表現です。私が知っていることから、(私ができる)正規表現のパターンにマッチさせて別の文字列に置き換えることができますが、それをどうやって行うか、あるいは可能であれば、別のパターンに置き換える必要があります。 –