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

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

1
「現代の」正規表現の認識力
実際の現代の正規表現は実際にどのクラスの言語を認識しますか? 後方参照(例(.*)_\1)を持つ無制限の長さのキャプチャグループがある場合は常に、正規表現が非正規言語と一致するようになりました。しかし、これだけでは、次のようなものに一致するのに十分ではありませんS ::= '(' S ')' | ε—親のペアを一致させる文脈自由言語。 再帰的な正規表現(これは私にとっては新しいものですが、PerlとPCREに存在すると確信しています)は、少なくともほとんどのCFLを認識しているように見えます。 誰かがこの分野で何か研究をしたり読んだりしましたか?これらの「現代の」正規表現の制限は何ですか?彼らは、LLまたはLR文法のCFGよりも厳密に多いか厳密に少ないかを認識していますか?または、正規表現では認識できるがCFGでは認識できない言語とその逆の言語の両方が存在しますか? 関連する論文へのリンクをいただければ幸いです。

2
PythonとUnicodeによる正規表現
文字列 'بِسْمِاللَّهِالرَّحْمَٰنِالرَّحِيمِ'からいくつかのUnicode記号を削除する必要があります 私は彼らが確かにここに存在することを知っています。私は試した: re.sub('([\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED]+)', '', 'بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ') しかし、それは機能しません。文字列は同じままです。私は何が間違っているのですか?

2
ある単語または別の単語を含む正規表現
整数の後に「秒」または「分」が続く式を作成する必要があります 私はこの表現を試しました: ([0-9]+)\s+(\bseconds\b)|(\bminutes\b) 数秒間は正常に動作しますが、数分間は正常に動作しません。 たとえば、「5秒」は5秒を与えます。「5分」は;;分を与えます
83 regex  preg-match 

8
どうすれば邪悪な正規表現を認識できますか?
私は最近、正規表現のサービス拒否攻撃に気づき、コードベースで見つけられる場所、または少なくともユーザー入力で使用される、いわゆる「悪」の正規表現パターンを根絶することにしました。上記のOWASPリンクとウィキペディアにある例は役に立ちますが、問題を簡単な言葉で説明するのに役立ちません。 ウィキペディアからの邪悪な正規表現の説明: 正規表現は、複雑な部分式に繰り返し( "+"、 "*")を適用します。 繰り返される部分式の場合、別の有効な一致の接尾辞でもある一致が存在します。 例を挙げて、再びウィキペディアから: (a+)+ ([a-zA-Z]+)* (a|aa)+ (a|a?)+ (.*a){x} x> 10の場合 これは簡単な説明がないだけの問題ですか?正規表現を作成するときにこの問題を回避したり、既存のコードベース内で正規表現を見つけたりするのが簡単になるものを探しています。
83 regex 

9
C#の&nbspを含む文字列からHTMLタグを削除します
C#で正規表現を使用して&nbspを含むすべてのHTMLタグを削除するにはどうすればよいですか。私の文字列は "<div>hello</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>                                                      </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>"
83 c#  html  regex  string 

8
Notepad ++は段階的に置き換えます
10行のデータが必要であるが、行またはデータの一部ごとに値をインクリメントしたいとします。その値をインクリメントするにはどうすればよいですか? たとえば....これらの行がある場合、id値を置き換えてインクリメントする正規表現の方法はありますか? <row id="1" /> <row id="1" /> <row id="1" /> <row id="1" /> <row id="1" /> ---これが私がそれをどのように見せたいかです...(最初の行のIDが上がれば大丈夫です) <row id="1" /> <row id="2" /> <row id="3" /> <row id="4" /> <row id="5" />

4
RegExp.exec()は散発的にNULLを返します
私はこれに真剣に夢中になっていて、ここで何が起こっているのかを理解しようとすることにすでに不釣り合いな時間を費やしています。だから私に手を貸してください=) JavaScriptで文字列の正規表現マッチングを行う必要があります。残念ながら、それは非常に奇妙に動作します。このコード: var rx = /(cat|dog)/gi; var w = new Array("I have a cat and a dog too.", "There once was a dog and a cat.", "I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There …
83 javascript  regex 

7
vimを使用して、選択範囲内の各単語の最初の文字を大文字にします
vimでは、~(この質問で述べたように)1つの文字を大文字にするために使用できることは知っていますが、vimを使用して選択範囲内の各単語の最初の文字を大文字にする方法はありますか? たとえば、から変更したい場合 hello world from stackoverflow に Hello World From Stackoverflow どのようにvimでそれを行うべきですか?

4
文字列の一致に基づいて列を選択します-dplyr :: select
たくさんの列を持つデータフレーム(「データ」)があります。一部の列には特定の文字列( "search_string")が含まれています。 dplyr::select()文字列を含む列のみを含むサブセットを取得するにはどうすればよいですか? 私は試した: # columns as boolean vector select(data, grepl("search_string",colnames(data))) # columns as vector of column names names select(data, colnames(data)[grepl("search_string",colnames(data))]) どちらも機能しません。 select()列の代わりに数値ベクトルを受け入れることは知っています。例: select(data,5,7,9:20) しかしID、grepl()式から列の数値ベクトルを取得する方法がわかりません。
83 r  regex  dplyr 


5
MatchCollectionを文字列配列に変換する
これよりもMatchCollectionを文字列配列に変換するためのより良い方法はありますか? MatchCollection mc = Regex.Matches(strText, @"\b[A-Za-z-']+\b"); string[] strArray = new string[mc.Count]; for (int i = 0; i < mc.Count;i++ ) { strArray[i] = mc[i].Groups[0].Value; } PS:mc.CopyTo(strArray,0)例外をスローします: ソース配列の少なくとも1つの要素を、宛先配列タイプにキャストできませんでした。
83 c#  arrays  regex 

6
「何も一致しない」の正規表現構文?
正規表現を多用するPythonテンプレートエンジンがあります。次のような連結を使用します。 re.compile( regexp1 + "|" + regexp2 + "*|" + regexp3 + "+" ) 個々の部分文字列(regexp1、regexp2など)を変更できます。 何にも一致しない小さくて軽い表現はありますか?一致したくないテンプレート内で使用できますか?残念ながら、「+」または「*」が正規表現アトムに追加されることがあるため、空の文字列を使用できません。これにより、「何も繰り返さない」エラーが発生します。
82 python  regex 

7
文字列全体を正規表現と一致させるにはどうすればよいですか?
文字列全体がクエリに一致する一致のみを検索する正規表現が必要です。 たとえば、「レッドオクトーバー」という名前の映画を検索する場合、その正確なタイトル(大文字と小文字は区別されません)のみを照合し、「レッドオクトーバーを追え」のようなタイトルは照合しません。これを行う方法を私が知っているかどうかはよくわかりません。誰か知ってる? ありがとう!
82 c#  .net  regex 

7
タグ間のテキストを抽出するJava正規表現
いくつかのカスタムタグを含むファイルがあり、タグ間の文字列を抽出する正規表現を記述したいと思います。たとえば、私のタグが次の場合: [customtag]String I want to extract[/customtag] タグ間の文字列のみを抽出する正規表現を作成するにはどうすればよいですか。このコードは正しい方向への一歩のようです: Pattern p = Pattern.compile("[customtag](.+?)[/customtag]"); Matcher m = p.matcher("[customtag]String I want to extract[/customtag]"); 次に何をすべきかわからない。何か案は?ありがとう。
82 java  regex 


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