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

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

5
正規表現とGWT
私の質問は次のとおりです。GWTで正規表現を使用するための良い解決策はありますか? たとえば、String.split(regex)の使用には満足していません。GWTはコードをJSに変換してから、正規表現をJS正規表現として使用します。しかし、JavaマッチャーやJavaパターンのようなものは使用できません。しかし、グループマッチングにはこれらが必要です。 可能性やライブラリはありますか? Jakarta Regexpを試しましたが、GWTがこのライブラリが使用するJava SDKのすべてのメソッドをエミュレートしないため、他の問題が発生しました。 クライアント側で次のようなものを使用できるようにしたいと思います。 // Compile and use regular expression Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(inputStr); boolean matchFound = matcher.find(); if (matchFound) { // Get all groups for this match for (int i=0; i<=matcher.groupCount(); i++) { String groupStr = matcher.group(i); System.out.println(groupStr); } }
81 java  regex  gwt 

11
キャメルケースまたはTitleCaseを分割する正規表現(詳細)
キャメルケースまたはTitleCase式の一部を抽出するための素晴らしい正規表現を見つけました。 (?<!^)(?=[A-Z]) 期待どおりに機能します。 値->値 キャメルバリュー->キャメル/バリュー TitleValue->タイトル/値 たとえば、Javaの場合: String s = "loremIpsum"; words = s.split("(?<!^)(?=[A-Z])"); //words equals words = new String[]{"lorem","Ipsum"} 私の問題は、それがいくつかの場合に機能しないことです: ケース1:値-> V / A / L / U / E ケース2:eclipseRCPExt-> eclipse / R / C / P / Ext 私の考えでは、結果は次のようになります。 ケース1:VALUE ケース2:日食/ RCP /内線 言い換えると、n個の大文字が与えられます。 n文字の後に小文字が続く場合、グループは次のようになります:(n-1文字)/(n番目の文字+小文字) n文字が最後にある場合、グループは次のようになります:(n文字)。 この正規表現を改善する方法について何かアイデアはありますか?


5
電子メールを盲目的に受け入れないように検証するための最も単純な正規表現は何ですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 1年前に閉鎖。 この質問を改善する ユーザーが私のサイトでアカウントを作成するときに、すべての入力を受け入れないように電子メールのサーバー検証を行いたいと思います。 ハンドシェイク検証を行う方法で、確認を送信します。 私は、最高ではないが、何も検証しない単純すぎないものを探しています。正規表現では検証ができないため、正規表現では正しい検証が行われないため、制限がどこにあるべきかわかりません。 正規表現に固有の悪行税と視覚的な複雑さを制限しようとしています。この場合、いずれも正しいからです。 それを行うためにどの正規表現を使用できますか?

6
文字列がScalaの正規表現と完全に一致するかどうかを確認するにはどうすればよいですか?
多くの文字列を一致させたい正規表現パターンがあると仮定します。 val Digit = """\d""".r 特定の文字列が正規表現と完全に一致するかどうかを確認したいだけです。Scalaでこれを行うための良い慣用的な方法は何ですか? 正規表現でパターンマッチできることは知っていますが、抽出するグループがないため、この場合、構文的にはあまり満足のいくものではありません。 scala> "5" match { case Digit() => true case _ => false } res4: Boolean = true または、基になるJavaパターンにフォールバックすることもできます。 scala> Digit.pattern.matcher("5").matches res6: Boolean = true これもエレガントではありません。 より良い解決策はありますか?
80 regex  scala 


6
すべての単語で最初に出現する文字を置き換えるにはどうすればよいですか?
すべての単語で最初に出現する文字を置き換えるにはどうすればよいですか? この文字列があるとしましょう: hello @jon i am @@here or @@@there and want some@thing in '@here" # ^ ^^ ^^^ ^ ^ そして、私@はすべての単語の最初を削除したいので、次のような最終的な文字列になります: hello jon i am @here or @@there and want something in 'here # ^ ^ ^^ ^ ^ 明確にするために、「@」文字は常にすべての単語で一緒に表示されますが、単語の先頭または他の文字の間に置くことができます。 「@」文字が1回だけ発生した場合は、部分文字列の削除で見つかった正規表現のバリエーションを使用して、1回発生したときに削除しましたが、負の先読みと負の後読みを使用するpythonの行で2回ではありません。 @(?!@)(?<!@@) 出力を確認します。 >>> s = "hello @jon i am …
44 python  regex 

2
JSの文字列が単一の絵文字かどうかを確認する方法はありますか?
質問は簡単です。文字列があるのstrですstrが、1つの絵文字かどうかを確認するにはどうすればよいですか。さらに、私は別のライブラリを使用しないことを望みます。 マッチ"🍎"、"⛹🏿‍♂️"、"3️⃣"ではなく"🍓a"、"𝕒"、"🍌🍀" 解決策が見つからないのですが、これまでに試したことがいくつかあります。 試行されたソリューション1-長さと...演算子を試してみる 絵文字は1バイト以上、一部は4バイト以上も占めることを学びました...文字列のlengthプロパティを介してそれを測定できます: console.log("🍎".length); // 2 console.log("🛡️".length); // 3 console.log("⛹🏿‍♂️".length); // 6 次に、...演算子がこれを考慮に入れて、配列内の絵文字を正しく分離していることがわかりました。結果の配列のlengthプロパティを確認して、それらが異なるかどうかを検出できました。 str = "⛹🏿‍♂️"; if (str.length !== [...str].length) { // is emoji? } else { // is not emoji } しかし、これは𝕡長さが2 などの他のマルチバイト文字をチェックしません。さらに、一部の絵文字はまだ奇妙な形で分離されていました。 試行されたソリューション2-正規表現、正規表現 もちろん正規表現は調べるべきものですが、私はまだ実行可能な解決策を見つけていません。 この回答の正規表現\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]は、文字列に絵文字があるかどうかを検出するために完全に正常に機能しますが、私の状況に適用すると、多くの問題が発生します。これが私のテストです: パートA-文字列の正規表現の開始/終了なし(^および$) 2A.1 str.match(regex)は非常に一貫性がなく、一部の絵文字とその他の使用できないものを分類します。絵文字以外の文字が含まれているかどうか、または複数の絵文字が含まれているかどうかを確認する方法がわかりません。 let regex = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/; console.log("5️⃣".match(regex)); // [ '⃣', …

3
re.findall( '(ab | cd)'、string)とre.findall( '(ab | cd)+'、string)
Pythonの正規表現で、この特異な問題に遭遇しました。re.findall('(ab|cd)', string)との違いについて教えてくださいre.findall('(ab|cd)+', string)。 import re string = 'abcdla' result = re.findall('(ab|cd)', string) result2 = re.findall('(ab|cd)+', string) print(result) print(result2) 実際の出力は次のとおりです。 ['ab', 'cd'] ['cd'] 2番目の結果にも含ま'ab'れていないのはなぜですか。
18 python  regex 

2
RubyでRegexpオブジェクトが「偽物」と見なされるのはなぜですか?
Rubyには「真実性」と「虚偽性」という普遍的な考え方があります。 Rubyには、ブールオブジェクト用に2つの特定のクラスがTrueClassありFalseClass、シングルトンインスタンスはそれぞれ特殊変数trueとfalseで示されます。 ただし、真実性と偽造性はこれら2つのクラスのインスタンスに限定されず、概念は普遍的であり、Rubyのすべてのオブジェクトに適用されます。すべてのオブジェクトは真実か偽物です。ルールは非常に簡単です。特に、2つのオブジェクトだけが偽物です: nilシングルトンインスタンスNilClassと false、のシングルトンインスタンス FalseClass 他のすべてのオブジェクトは真実です。これには、他のプログラミング言語で偽物と見なされるオブジェクトも含まれます。 、Integer 0 、Float 0.0 空、String '' 空、Array [] 空、Hash {} これらのルールは言語に組み込まれており、ユーザーが定義することはできません。to_bool暗黙的な変換やそれに類似したものはありません。 ISO Ruby言語仕様からの引用は次のとおりです。 6.6ブール値 オブジェクトは、真実のオブジェクトまたは偽のオブジェクトに分類されます。 falseとnilのみが偽りのオブジェクトです。falseは、false式が評価されるクラスのインスタンスFalseClass(15.2.6を参照)のみです(11.5.4.8.3を参照)。nilは、クラスの唯一のインスタンス(15.2.4を参照)であり、nil式が評価されます(11.5.4.8.2を参照)。NilClass falseおよびnil以外のオブジェクトは、trueishオブジェクトに分類されます。trueは、true式が評価されるクラスの唯一のインスタンスTrueClass(15.2.5を参照)です(11.5.4.8.3を参照)。 実行可能なRuby / Specは同意するようです: it "considers a non-nil and non-boolean object in expression result as true" do if mock('x') 123 else 456 end.should == 123 end これらの2つの情報源によると、私はRegexpsも真実であると想定していますが、私のテストによると、そうではありません。 …
16 regex  ruby  boolean  jruby  yarv 

1
正規表現の$ /と$¢の違いは何ですか?
タイトルが示すように、違いは何である$/とは$¢?それらは常に同じ値を持っているように見えます: my $text = "Hello world"; $text ~~ /(\w+) { say $/.raku } (\w+)/; $text ~~ /(\w+) { say $¢.raku } (\w+)/; どちらも同じ値のMatchオブジェクトになります。どちらを使用する場合のロジックは何ですか?
11 regex  raku 

2
正規表現で列を分割して、末尾のCAPSを別の列に移動するにはどうすればよいですか?
正規表現を使用して列を分割しようとしていますが、正しく分割できないようです。末尾のCAPSをすべて取り出して、別の列に移動しようとしています。したがって、2〜4個のCAPSであるすべてのCAPSが連続して取得されます。ただし、列が空白になっている'Name'間だけ、列を離れ'Team'ます。 これが私のコードです: import pandas as pd url = "https://www.espn.com/nba/stats/player/_/table/offensive/sort/avgAssists/dir/desc" df = pd.read_html(url)[0].join(pd.read_html(url)[1]) df[['Name','Team']] = df['Name'].str.split('[A-Z]{2,4}', expand=True) これ欲しい: print(df.head(5).to_string()) RK Name POS GP MIN PTS FGM FGA FG% 3PM 3PA 3P% FTM FTA FT% REB AST STL BLK TO DD2 TD3 PER 0 1 LeBron JamesLA SF 35 35.1 24.9 9.6 …
11 python  regex  pandas 

8
C#で正規表現を使用して特定の単語の前の数字を取得するにはどうすればよいですか?
以下の正規表現を使用して、単語の前の数字を取得します。 例: 838123 someWord 8 someWord 12 someWord (\d+)\s*someWord ただし、Numberとwordの間に何かが発生する場合があります。以下のサンプル行を参照してください。 例: 43434 of someword 12何かsomeword 2323新しいsomeword 正規表現を使用してその単語の前の正確な数字を取得するにはどうすればよいですか? あなたの提案をお願いします。
10 c#  .net  regex 

5
最後の(または唯一の)文字がゼロでない限り、Rの先行ゼロを削除する正規表現
gsub("(?<![0-9])0+", "", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" gsub("(^|[^0-9])0+", "\\1", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" 上記の正規表現は、Rの文字列からすべての先行ゼロを削除する方法を説明するこのSOスレッドからのものです。この正規表現の結果として、「000」と「0」は両方とも「」に変換されます。代わりに、最後の文字が偶然ゼロである場合、または唯一の文字がゼロである場合を除いて、文字列からすべての先行ゼロを削除します。 "005" would become "5" "0AB" would become "AB" "000" would become "0" "0" would become "0" この別のSOスレッドは私がやりたいことを行う方法を説明していますが、Rのソリューションを適用して構文が完全に正しいとは思いません。また、以下の1番目と2番目のソリューションの違いを本当に理解していません(彼らが実際に働いた場合)。 gsub("s/^0*(\d+)$/$1/;", "", …
9 r  regex  string  gsub  stringr 

6
重複する文字を一致させて削除する:複数(3+)の連続しない出現箇所を置き換えます
regex各文字の3番目、4番目、...の出現に一致するパターンを探しています。明確にするために以下を見てください: たとえば、次の文字列があります。 111aabbccxccybbzaa1 2回目以降の重複文字をすべて置き換えたい。出力は次のようになります。 11-aabbccx--y--z--- これまでに試したいくつかの正規表現パターン: 次の正規表現を使用して、各文字の最後の出現を見つけることができます。 (.)(?=.*\1) または、これを使用して、連続する重複に対してそれを行うことができますが、重複に対してはできません: ([a-zA-Z1-9])\1{2,}
9 python  r  regex  string 

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