タグ付けされた質問 「regex」

正規表現は、文字列内のパターンに一致する宣言型言語を提供します。これらは、文字列の検証、解析、および変換に一般的に使用されます。正規表現は完全に標準化されていないため、このタグの付いたすべての質問には、適切なプログラミング言語またはツールを指定するタグも含める必要があります。注:HTML、JSONなどを要求すると、正規表現は否定的な反応を示す傾向があります。パーサーがある場合は、代わりにそれを使用してください。

5
キャプチャしたグループのみを置き換える方法は?
文字列の前後にHTMLコードがあります。 name="some_text_0_some_text" 私はのようなものに置き換え0たいです:!NEW_ID! だから私は簡単な正規表現を作りました: .*name="\w+(\d+)\w+".* しかし、キャプチャされたブロックのみを置き換える方法はわかりません。 ($ 1)のようなキャプチャされた結果を他の文字列で置き換える方法はありますか? 結果は次のようになります: name="some_text_!NEW_ID!_some_text"
193 javascript  regex 


6
一部のグループのみを正規表現に置き換えます
次の正規表現があるとしましょう: -(\d+)- そして、C#を使用して、グループ1 (\d+)をに置き換え、以下AAを取得します。 -AA- 今、私はそれを使ってそれを置き換えています: var text = "example-123-example"; var pattern = @"-(\d+)-"; var replaced = Regex.Replace(text, pattern, "-AA-"); しかし、私はこれがあまり好きではありません。パターンを変更して一致_(\d+)_させると、置換文字列_AA_も変更する必要があり、これはDRYの原則に反するためです。 私は次のようなものを探しています: 一致したテキストを正確に保持しますが、Group 1 by this textおよびGroup 2 by another text...を変更します。 編集: それは単なる例でした。私は上記で言ったことを行うための一般的な方法を探しています。 それは動作するはずです: anything(\d+)more_text そしてあなたが想像できるどんなパターンでも。 私がやりたいのは、グループのみを置き換え、残りの試合を維持することだけです。
190 c#  regex  replace 

5
文字数を10に制限する正規表現
小文字と最大10文字のみを許可する正規表現を記述しようとしています。これまでのところ、次のようになっています。 pattern: /^[a-z]{0,10}+$/ これは機能しないか、コンパイルされません。私はこれが小文字だけを許可する実用的なものを持っていました: pattern: /^[a-z]+$/ ただし、文字数を10文字に制限する必要があります。
189 regex 

13
単語間のスペースを許可する正規表現
記号を防ぎ、文字と数字のみを許可する正規表現が必要です。以下の正規表現はうまく機能しますが、単語間のスペースは許可されません。 ^[a-zA-Z0-9_]*$ たとえば、この正規表現を使用する場合、「HelloWorld」は問題ありませんが、「Hello World」は一致しません。 どうすればスペースを許可するように微調整できますか?

9
与えられたサフィックスで終わっていない文字列の正規表現
ある条件で終わっていない文字列に一致する適切な正規表現を見つけることができませんでした。たとえば、末尾がa。であるものには一致させたくありません。 これは一致します b ab 1 これは一致しません a ba その前に$何が必要かわからないが、私は正規表現が終わりを示すために終わるべきであることを知っています。 編集:元の質問は私の場合の正当な例ではないようです。では、複数の文字をどのように処理するのでしょうか?で終わらないものは何abですか? 私はこのスレッドを使用してこれを修正することができました: .*(?:(?!ab).).$ これの欠点は1文字の文字列と一致しないことです。
188 regex 

30
英国の郵便番号を照合するためのRegEx
私は、入力文字列内でのみ完全な複雑なUK郵便番号を検証する正規表現を求めています。珍しいすべての郵便番号フォームは、通常と同様にカバーする必要があります。例えば: 一致する CW3 9SS SE5 0EG SE50EG se5 0eg WC2H 7LT 歯が立たない aWC2H 7LT WC2H 7LTa WC2H この問題を解決するにはどうすればよいですか?

7
REエラー:Mac OS Xでの不正なバイトシーケンス
iOSへのクロスコンパイルのためにMac OS X上のMakefile内の文字列を置き換えようとしています。文字列には二重引用符が埋め込まれています。コマンドは次のとおりです。 sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure そしてエラーは: sed: RE error: illegal byte sequence 二重引用符、コンマ、ダッシュ、コロンをエスケープしてみました。例えば: sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:\-O3|\"iphoneos-cross\"\,\"clang\:\-Os|g' Configure 私は問題をデバッグする時間をたっぷりと持っています。誰かがsed不正なバイトシーケンスの位置を印刷する方法を知っていますか?または、誰かが違法なバイトシーケンスを知っていますか?
184 regex  macos  bash  sed 

1
python re.sub group:\ numberの後の番号
どのように私は置き換えることができfoobarてfoo123bar? これは機能しません: >>> re.sub(r'(foo)', r'\1123', 'foobar') 'J3bar' これは機能します: >>> re.sub(r'(foo)', r'\1hi', 'foobar') 'foohibar' これはのような場合によくある問題だと思います\number。誰も私にこれを処理する方法についてのヒントを与えることができますか?

8
正規表現パターンが文字列のどこにも一致しませんか?
次の<input>パターンを使用して、タイプ「非表示」フィールドを照合しようとしています。 /<input type="hidden" name="([^"]*?)" value="([^"]*?)" />/ これはサンプルのフォームデータです。 <input type="hidden" name="SaveRequired" value="False" /><input type="hidden" name="__VIEWSTATE1" value="1H4sIAAtzrkX7QfL5VEGj6nGi+nP" /><input type="hidden" name="__VIEWSTATE2" value="0351118MK" /><input type="hidden" name="__VIEWSTATE3" value="ZVVV91yjY" /><input type="hidden" name="__VIEWSTATE0" value="3" /><input type="hidden" name="__VIEWSTATE" value="" /><input type="hidden" name="__VIEWSTATE" value="" /> しかし、私はあることを確認していないtype、nameとvalue属性が常に同じ順序で表示されます。type属性が最後に来る場合、私のパターンではそれが最初にあるので、一致は失敗します。 質問:タグ 内の属性の位置に関係なく一致するようにパターンを変更するにはどうすればよい<input>ですか? PS:ちなみに私はAdobe AirベースのRegExデスクトップツールを使用して正規表現をテストしています。
181 html  regex  parsing 

3
文字列を含まないGrep正規表現
grepsyslogファイルと照合するための正規表現パターンのリストを渡します。それらは通常、IPアドレスとログエントリに一致します。 grep "1\.2\.3\.4.*Has exploded" syslog.log これ"1\.2\.3\.4.*Has exploded"は、ループで渡した部分のような単なるパターンのリストなので、たとえば "-v"を渡すことはできません。 上記の逆を行おうとすると混乱します。特定のIPアドレスとエラーの行を一致させないので、「!1.2.3.4。*展開されました」は、1.2.3.4以外のsyslog行と一致し、展開されたことを通知します。 。私がしなければならないと一致しないようにIPを含めることができるよう。 StackOverflorで同様の投稿をいくつか見てきましたが、それらは正規表現パターンを使用しているため、で操作できないようですgrep。誰かが実用的な例をgrep教えてくれますか? 更新: これは、次のようなスクリプトで発生しています。 patterns[1]="1\.2\.3\.4.*Has exploded" patterns[2]="5\.6\.7\.8.*Has died" patterns[3]="\!9\.10\.11\.12.*Has exploded" for i in {1..3} do grep "${patterns[$i]}" logfile.log done
181 regex  grep 

7
元の文字列を維持しながら、文字列にPerl置換を実行するにはどうすればよいですか?
Perlでは、正規表現を使用して文字列の置換を実行し、元の値を変更せずに別の変数に値を格納するための良い方法は何ですか? 私は通常、文字列を新しい変数にコピーし、それをs///新しい文字列の置換を行う正規表現にバインドしますが、これを行うより良い方法があるかどうか疑問に思っていましたか? $newstring = $oldstring; $newstring =~ s/foo/bar/g;
180 regex  perl  replace 


3
名前付き正規表現グループ「(?P <group_name> regexp)」:「P」は何を表していますか?
Pythonでは、 (?P&lt;group_name&gt;…) 構文により、一致する文字列をその名前で参照できます。 &gt;&gt;&gt; import re &gt;&gt;&gt; match = re.search('(?P&lt;name&gt;.*) (?P&lt;phone&gt;.*)', 'John 123456') &gt;&gt;&gt; match.group('name') 'John' 「P」は何の略ですか?公式ドキュメントにはヒントが見つかりませんでした。 生徒がこの構文を覚えやすくする方法についてのアイデアが欲しいです。「P」が何を表す(または表すかもしれない)かを知ることは有用でしょう。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.