セル内とループの両方でMicrosoftExcelで正規表現(Regex)を使用する方法

621
Portland Runner 2014-03-21 09:09.

Excelで正規表現を使用し、Excelの強力なグリッドのようなセットアップをデータ操作に利用するにはどうすればよいですか?

  • 一致したパターンまたは置換された値を文字列で返すセル内関数。
  • データの列をループし、隣接するセルへの一致を抽出するSub。
  • どのような設定が必要ですか?
  • 正規表現用のExcelの特殊文字は何ですか?

私は、正規表現は、多くの状況には適していません理解して(正規表現を使用するために使用するかどうか?)Excelが使用できるのでLeftMidRightInstr同様の操作のためのタイプのコマンドを。

9 answers

992
Portland Runner 2014-03-21 09:09.

パターンマッチングには正規表現が使用されます。

Excelで使用するには、次の手順に従います。

手順1:「MicrosoftVBScript正規表現5.5」にVBA参照を追加する

  • 「開発者」タブを選択します(このタブがありません。どうすればよいですか?
  • 「コード」リボンセクションから「VisualBasic」アイコンを選択します
  • 「MicrosoftVisualBasic for Applications」ウィンドウで、トップメニューから「ツール」を選択します。
  • 「参照」を選択します
  • 「MicrosoftVBScript正規表現5.5」の横にあるチェックボックスをオンにして、ブックに含めます。
  • 「OK」をクリックします

ステップ2:パターンを定義する

基本的な定義:

- 範囲。

  • たとえばa-z、aからzまでの小文字に一致します
  • たとえば0-5、0から5までの任意の数値に一致します

[] これらの角かっこ内のオブジェクトの1つと正確に一致します。

  • たとえば[a]、文字aと一致します
  • たとえば[abc]、a、b、またはcの1文字に一致します
  • たとえば[a-z]、アルファベットの小文字に一致します。

()返品の目的で、さまざまな一致をグループ化します。以下の例を参照してください。

{} その前に定義されたパターンの繰り返しコピーの乗数。

  • たとえば、[a]{2}2つの連続する小文字aに一致します。aa
  • 例えば[a]{1,3}、少なくとも1と最大3つの小文字に一致しaaaaaa

+ その前に定義されたパターンの少なくとも1つ以上に一致します。

  • 例えば、a+一致する連続したAさんaaaaaa、など

? ゼロまたはその前に定義されたパターンの1つに一致します。

  • たとえば、パターンが存在する場合と存在しない場合がありますが、一致させることができるのは1回だけです。
  • たとえば、[a-z]?空の文字列または任意の1つの小文字に一致します。

* その前に定義されたパターンの0個以上に一致します。-存在する場合と存在しない場合があるパターンのワイルドカードなど。-たとえば、[a-z]*空の文字列または小文字の文字列に一致します。

. 改行以外のすべての文字に一致します \n

  • 例:でa.始まり、を除くすべてで終わる2文字の文字列に一致します\n

| OR演算子

  • たとえばa|baまたはbを一致させることができることを意味します。
  • たとえばred|white|orange、色の1つに正確に一致します。

^ NOT演算子

  • たとえば、[^0-9]文字に数字を含めることはできません
  • たとえば、[^aA]文字を小文字aまたは大文字にすることはできませんA

\ 次の特殊文字をエスケープします(上記の動作をオーバーライドします)

  • 例えば\.\\\(\?\$\^

アンカーパターン:

^ 文字列の先頭で一致する必要があります

  • 例:^a最初の文字は小文字でなければなりませんa
  • たとえば、^[0-9]最初の文字は数字でなければなりません。

$ 文字列の最後で一致する必要があります

  • 例:a$最後の文字は小文字でなければなりませんa

優先順位表:

Order  Name                Representation
1      Parentheses         ( )
2      Multipliers         ? + * {m,n} {m, n}?
3      Sequence & Anchors  abc ^ $
4      Alternation         |

事前定義された文字の略語:

abr    same as       meaning
\d     [0-9]         Any single digit
\D     [^0-9]        Any single character that's not a digit
\w     [a-zA-Z0-9_]  Any word character
\W     [^a-zA-Z0-9_] Any non-word character
\s     [ \r\t\n\f]   Any space character
\S     [^ \r\t\n\f]  Any non-space character
\n     [\n]          New line

例1マクロとして実行

次のマクロ例では、セル内の値A1を調べて、最初の1文字または2文字が数字であるかどうかを確認します。その場合、それらは削除され、文字列の残りの部分が表示されます。そうでない場合は、一致するものが見つからないことを示すボックスが表示されます。のセルA112abcは戻りabc、の値1abcは戻りabc、の値はabc123「不一致」を返します。これは、数字が文字列の先頭になかったためです。

Private Sub simpleRegex()
    Dim strPattern As String: strPattern = "^[0-9]{1,2}"
    Dim strReplace As String: strReplace = ""
    Dim regEx As New RegExp
    Dim strInput As String
    Dim Myrange As Range

    Set Myrange = ActiveSheet.Range("A1")

    If strPattern <> "" Then
        strInput = Myrange.Value

        With regEx
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .Pattern = strPattern
        End With

        If regEx.Test(strInput) Then
            MsgBox (regEx.Replace(strInput, strReplace))
        Else
            MsgBox ("Not matched")
        End If
    End If
End Sub

例2セル内関数として実行

この例は例1と同じですが、セル内関数として実行するように設定されています。使用するには、コードを次のように変更します。

Function simpleCellRegex(Myrange As Range) As String
    Dim regEx As New RegExp
    Dim strPattern As String
    Dim strInput As String
    Dim strReplace As String
    Dim strOutput As String


    strPattern = "^[0-9]{1,3}"

    If strPattern <> "" Then
        strInput = Myrange.Value
        strReplace = ""

        With regEx
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .Pattern = strPattern
        End With

        If regEx.test(strInput) Then
            simpleCellRegex = regEx.Replace(strInput, strReplace)
        Else
            simpleCellRegex = "Not matched"
        End If
    End If
End Function

文字列( "12abc")をセルに配置しますA1。この数式=simpleCellRegex(A1)をセルに入力するB1と、結果は「abc」になります。


例3ループスルー範囲

この例は例1と同じですが、セルの範囲をループします。

Private Sub simpleRegex()
    Dim strPattern As String: strPattern = "^[0-9]{1,2}"
    Dim strReplace As String: strReplace = ""
    Dim regEx As New RegExp
    Dim strInput As String
    Dim Myrange As Range

    Set Myrange = ActiveSheet.Range("A1:A5")

    For Each cell In Myrange
        If strPattern <> "" Then
            strInput = cell.Value

            With regEx
                .Global = True
                .MultiLine = True
                .IgnoreCase = False
                .Pattern = strPattern
            End With

            If regEx.Test(strInput) Then
                MsgBox (regEx.Replace(strInput, strReplace))
            Else
                MsgBox ("Not matched")
            End If
        End If
    Next
End Sub

例4:異なるパターンを分割する

この例では、範囲(A1A2A3)をループして、3桁で始まり、1つの英字、4つの数字が続く文字列を探します。出力は、を使用してパターン一致を隣接するセルに分割し()ます。 $1の最初のセット内で一致した最初のパターンを表し()ます。

Private Sub splitUpRegexPattern()
    Dim regEx As New RegExp
    Dim strPattern As String
    Dim strInput As String
    Dim Myrange As Range

    Set Myrange = ActiveSheet.Range("A1:A3")

    For Each C In Myrange
        strPattern = "(^[0-9]{3})([a-zA-Z])([0-9]{4})"

        If strPattern <> "" Then
            strInput = C.Value

            With regEx
                .Global = True
                .MultiLine = True
                .IgnoreCase = False
                .Pattern = strPattern
            End With

            If regEx.test(strInput) Then
                C.Offset(0, 1) = regEx.Replace(strInput, "$1")
                C.Offset(0, 2) = regEx.Replace(strInput, "$2")
                C.Offset(0, 3) = regEx.Replace(strInput, "$3")
            Else
                C.Offset(0, 1) = "(Not matched)"
            End If
        End If
    Next
End Sub

結果:


追加のパターン例

String   Regex Pattern                  Explanation
a1aaa    [a-zA-Z][0-9][a-zA-Z]{3}       Single alpha, single digit, three alpha characters
a1aaa    [a-zA-Z]?[0-9][a-zA-Z]{3}      May or may not have preceding alpha character
a1aaa    [a-zA-Z][0-9][a-zA-Z]{0,3}     Single alpha, single digit, 0 to 3 alpha characters
a1aaa    [a-zA-Z][0-9][a-zA-Z]*         Single alpha, single digit, followed by any number of alpha characters

</i8>    \<\/[a-zA-Z][0-9]\>            Exact non-word character except any single alpha followed by any single digit
209
Patrick Böker 2015-01-28 07:47.

Excelの数式で正規表現を直接使用するには、次のUDF(ユーザー定義関数)が役立ちます。正規表現機能をExcel関数として多かれ少なかれ直接公開します。

使い方

2-3のパラメータを取ります。

  1. 正規表現を使用するテキスト。
  2. 正規表現。
  3. 結果の外観を指定するフォーマット文字列。それは含めることができ$0$1$2、とのように。$0は一致全体であり$1、upは正規表現のそれぞれの一致グループに対応します。デフォルトは$0

いくつかの例

メールアドレスの抽出:

=regex("Peter Gordon: [email protected], 47", "\[email protected]\w+\.\w+")
=regex("Peter Gordon: [email protected], 47", "\[email protected]\w+\.\w+", "$0")

結果: [email protected]

いくつかの部分文字列の抽出:

=regex("Peter Gordon: [email protected], 47", "^(.+): (.+), (\d+)$", "E-Mail: $2, Name: $1")

結果: E-Mail: [email protected], Name: Peter Gordon

単一のセル内の結合された文字列を複数のセル内のコンポーネントに分解するには:

=regex("Peter Gordon: [email protected], 47", "^(.+): (.+), (\d+)$", "$" & 1)
=regex("Peter Gordon: [email protected], 47", "^(.+): (.+), (\d+)$", "$" & 2)

結果:Peter Gordon [email protected]..。

使い方

このUDFを使用するには、次の手順を実行します(おおよそ、このMicrosoftページに基づいています。そこにいくつかの優れた追加情報があります!):

  1. Excelのマクロ対応ファイル( '.xlsm')で、プッシュALT+F11してMicrosoft Visual Basic for ApplicationsEditorを開きます
  2. 正規表現ライブラリにVBA参照を追加します(Portland Runners ++の回答から恥知らずにコピーされました):
    1. [ツール] -> [参照]をクリックします(ドイツ語のスクリーンショットを許してください)
    2. リストからMicrosoftVBScript正規表現5.5を見つけ、その横にあるチェックボックスをオンにします。
    3. [ OK]をクリックします。
  3. [モジュールの挿入]をクリックします。モジュールに別の名前を付ける場合は、モジュールの名前が以下のUDFと同じでないことを確認してください(たとえば、モジュールに名前を付けるRegexと、関数regexによって#NAME!エラーが発生します)。

  4. 中央の大きなテキストウィンドウに、次を挿入します。

    Function regex(strInput As String, matchPattern As String, Optional ByVal outputPattern As String = "$0") As Variant
        Dim inputRegexObj As New VBScript_RegExp_55.RegExp, outputRegexObj As New VBScript_RegExp_55.RegExp, outReplaceRegexObj As New VBScript_RegExp_55.RegExp
        Dim inputMatches As Object, replaceMatches As Object, replaceMatch As Object
        Dim replaceNumber As Integer
    
        With inputRegexObj
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .Pattern = matchPattern
        End With
        With outputRegexObj
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .Pattern = "\$(\d+)"
        End With
        With outReplaceRegexObj
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
        End With
    
        Set inputMatches = inputRegexObj.Execute(strInput)
        If inputMatches.Count = 0 Then
            regex = False
        Else
            Set replaceMatches = outputRegexObj.Execute(outputPattern)
            For Each replaceMatch In replaceMatches
                replaceNumber = replaceMatch.SubMatches(0)
                outReplaceRegexObj.Pattern = "\$" & replaceNumber
    
                If replaceNumber = 0 Then
                    outputPattern = outReplaceRegexObj.Replace(outputPattern, inputMatches(0).Value)
                Else
                    If replaceNumber > inputMatches(0).SubMatches.Count Then
                        'regex = "A to high $ tag found. Largest allowed is $" & inputMatches(0).SubMatches.Count & "."
                        regex = CVErr(xlErrValue)
                        Exit Function
                    Else
                        outputPattern = outReplaceRegexObj.Replace(outputPattern, inputMatches(0).SubMatches(replaceNumber - 1))
                    End If
                End If
            Next
            regex = outputPattern
        End If
    End Function
    
  5. Microsoft Visual Basic for ApplicationsEditorウィンドウを保存して閉じます。

67
SAm 2017-03-31 11:28.

急いでいる人のためのpatszim答えを拡大します。

  1. Excelブックを開きます。
  2. Alt+ F11VBA /マクロウィンドウを開きます。
  3. 下の正規表現への参照を追加ツール、その後の参照
  4. MicrosoftVBScript正規表現5.5を選択します
  5. 新しいモジュールを挿入します(コードはモジュール内に存在する必要があります。そうでない場合は機能しません)。
  6. 新しく挿入されたモジュールでは、
  7. 次のコードを追加します。

    Function RegxFunc(strInput As String, regexPattern As String) As String
        Dim regEx As New RegExp
        With regEx
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .pattern = regexPattern
        End With
    
        If regEx.Test(strInput) Then
            Set matches = regEx.Execute(strInput)
            RegxFunc = matches(0).Value
        Else
            RegxFunc = "not matched"
        End If
    End Function
    
  8. 正規表現パターンはセルの1つに配置され、絶対参照が使用されます。 関数は、作成されたブックに関連付けられます。
    別のブックで使用する必要がある場合は、関数をPersonal.XLSBに保存します。

27
Vikas Gautam 2015-08-18 13:03.

これが私の試みです:

Function RegParse(ByVal pattern As String, ByVal html As String)
    Dim regex   As RegExp
    Set regex = New RegExp

    With regex
        .IgnoreCase = True  'ignoring cases while regex engine performs the search.
        .pattern = pattern  'declaring regex pattern.
        .Global = False     'restricting regex to find only first match.

        If .Test(html) Then         'Testing if the pattern matches or not
            mStr = .Execute(html)(0)        '.Execute(html)(0) will provide the String which matches with Regex
            RegParse = .Replace(mStr, "$1") '.Replace function will replace the String with whatever is in the first set of braces - $1.
        Else
            RegParse = "#N/A"
        End If

    End With
End Function
9
DeezCashews 2017-03-18 16:41.

これをセル関数(SUMまたはなどVLOOKUP)として使用する必要があり、次のことが簡単であることがわかりました。

  1. マクロが有効なExcelファイル(xlsmとして保存)にいることを確認してください。
  2. オープン開発ツールAlt+F11
  3. 他の回答と同様に、MicrosoftVBScript正規表現5.5を追加します
  4. ワークブックまたは独自のモジュールで次の関数を作成します。

    Function REGPLACE(myRange As Range, matchPattern As String, outputPattern As String) As Variant
        Dim regex As New VBScript_RegExp_55.RegExp
        Dim strInput As String
    
        strInput = myRange.Value
    
        With regex
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .Pattern = matchPattern
        End With
    
        REGPLACE = regex.Replace(strInput, outputPattern)
    
    End Function
    
  5. 次に、セル内で使用できます=REGPLACE(B1, "(\w) (\d+)", "$1$2")(例:「A243」から「A243」)

8
Alex Roseland 2019-11-27 10:20.

これは直接的な答えではありませんが、検討のためのより効率的な代替手段を提供する可能性があります。つまり、Googleスプレッドシートにはいくつかの正規表現関数が組み込まれているため、これらは非常に便利で、Excelの技術的な手順の一部を回避するのに役立ちます。明らかに、PCでExcelを使用することにはいくつかの利点がありますが、大多数のユーザーにとって、Googleスプレッドシートは同じエクスペリエンスを提供し、ドキュメントの移植性と共有にいくつかの利点を提供する可能性があります。

彼らは提案する

REGEXEXTRACT:正規表現に従って一致する部分文字列を抽出します。

REGEXREPLACE:正規表現を使用して、テキスト文字列の一部を別のテキスト文字列に置き換えます。

SUBSTITUTE:文字列内の既存のテキストを新しいテキストに置き換えます。

REPLACE:テキスト文字列の一部を別のテキスト文字列に置き換えます。

これらをそのようにセルに直接入力すると、好きなものを作成できます

=REGEXMATCH(A2, "[0-9]+")

また、次のようなIFステートメントなどの他の関数と組み合わせても非常にうまく機能します。

=IF(REGEXMATCH(E8,"MiB"),REGEXEXTRACT(E8,"\d*\.\d*|\d*")/1000,IF(REGEXMATCH(E8,"GiB"),REGEXEXTRACT(E8,"\d*\.\d*|\d*"),"")

うまくいけば、これは、ExcelのVBSコンポーネントに罵倒されていると感じるユーザーに簡単な回避策を提供します。

4
jgreve 2017-07-29 11:19.

これが regex_subst()関数です。例:

=regex_subst("watermellon", "[aeiou]", "")
---> wtrmlln
=regex_subst("watermellon", "[^aeiou]", "")
---> aeeo

これが単純化されたコードです(とにかく、私にとってはより単純です)。上記を使用して適切な出力パターンを構築し、私の例のように機能させる方法を理解できませんでした。

Function regex_subst( _
     strInput As String _
   , matchPattern As String _
   , Optional ByVal replacePattern As String = "" _
) As Variant
    Dim inputRegexObj As New VBScript_RegExp_55.RegExp

    With inputRegexObj
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = matchPattern
    End With

    regex_subst = inputRegexObj.Replace(strInput, replacePattern)
End Function
3
JvdV 2020-02-13 06:19.

貴重なコンテンツに追加するために、VBA内の正規表現が理想的でない場合がある理由についてこのリマインダーを作成したいと思います。すべての式がサポートされているわけではありませんが、代わりにをスローしてError 5017、作成者に推測させてしまう可能性があります(これは私自身の犠牲者です)。

サポートされているものに関するいくつかのソースを見つけることができます、どのメタ文字などがサポートされていないかを知ることは役に立ちます。より詳細な説明はここにあります。このソースで言及:

"ただし" VBScriptの正規表現...バージョン5.5は、以前のバージョンのVBScriptにはなかったかなりの数の重要な正規表現機能を実装しています。... JavaScriptとVBScriptは、Perlスタイルの正規表現を実装しています。ただし、Perlやその他の最新の正規表現フレーバーで利用できる高度な機能がかなり不足しています。」


したがって、サポートされていないのは次のとおりです。

  • 文字列ancorの開始\A、または代わりに^キャレットを使用して、文字列の最初の文字の前の位置に一致させます
  • 文字列の終わりancor \Z、または$ドル記号を使用して、文字列の最後の文字の後の位置に一致させます
  • 正の後読み、例えば:(?<=a)b(ポジティブ先読みをしながらされるサポート)
  • ネガティブLookBehind、例:((?<!a)bネガティブLookAheadサポートされています)
  • アトミックグループ化
  • 所有格数量詞
  • Unicode例: \{uFFFF}
  • 名前付きキャプチャグループ。または、番号付きキャプチャグループを使用します
  • インライン修飾子。例:(/i大文字と小文字の区別)または/g(グローバル)など。RegExpオブジェクトのプロパティ>RegExp.Global = TrueRegExp.IgnoreCase = True使用して、使用可能な場合はこれらを設定します。
  • 条件付き
  • 正規表現コメント'スクリプトに定期的なコメントを付けてこれらを追加します

VBA内で正規表現を使用して、すでに何度も壁にぶつかりました。通常は使用しますLookBehindが、修飾子を忘れることもあります。私はこれらすべての上記の背景を自分で経験したことはありませんが、いくつかのより詳細な情報を参照して広範囲に及ぶようにしようと思いました。コメント/修正/追加してください。豊富な情報については、regular-expressions.infoに大声で叫んでください。

PSあなたは通常のVBAメソッドと関数について言及しましたが、それらが(少なくとも私にとっては)RegExが失敗する独自の方法で役立っていることを確認できます。

2
FreeSoftwareServers 2019-03-22 16:57.

スクリプトを移植可能にする必要があるため、参照ライブラリを有効にする必要はありません。そのDim foo As New VBScript_RegExp_55.RegExp行はUser Defined Type Not Definedエラーを引き起こしました、しかし私は私のために働く解決策を見つけました。

@chrisneilsenでREコメントを更新:

参照ライブラリの有効化はローカルコンピューターの設定に関連付けられているという印象を受けましたが、実際には、ブックに直接関連付けられています。したがって、参照ライブラリを有効にし、マクロが有効なブックを共有することができ、エンドユーザーもライブラリを有効にする必要はありません。警告:遅延バインディングの利点は、開発者がユーザーのコンピューターにインストールされているオブジェクトライブラリの間違ったバージョンについて心配する必要がないことです。これはVBScript_RegExp_55.RegExpライブラリでは問題にならない可能性がありますが、コードで認識できないミリ秒を話しているため、現時点では「パフォーマンス」のメリットが私にとって価値があるとは言えません。これは他の人が理解できるように更新する価値があると感じました。参照ライブラリを有効にすると、「アーリーバインド」を使用できますが、有効にしない場合、私が知る限り、コードは正常に機能しますが、「遅延バインド」を行い、パフォーマンス/デバッグを緩める必要があります。特徴。

ソース:https//peltiertech.com/Excel/EarlyLateBinding.html

やりたいことは、セルA1にサンプル文字列を入れてから、をテストすることstrPatternです。それが機能したら、rng必要に応じて調整します。

Public Sub RegExSearch()
'https://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in-microsoft-excel-both-in-cell-and-loops
'https://wellsr.com/vba/2018/excel/vba-regex-regular-expressions-guide/
'https://www.vitoshacademy.com/vba-regex-in-excel/
    Dim regexp As Object
    'Dim regex As New VBScript_RegExp_55.regexp 'Caused "User Defined Type Not Defined" Error
    Dim rng As Range, rcell As Range
    Dim strInput As String, strPattern As String
    
    Set regexp = CreateObject("vbscript.regexp")
    Set rng = ActiveSheet.Range("A1:A1")
        
    strPattern = "([a-z]{2})([0-9]{8})"
    'Search for 2 Letters then 8 Digits Eg: XY12345678 = Matched

    With regexp
        .Global = False
        .MultiLine = False
        .ignoreCase = True
        .Pattern = strPattern
    End With

    For Each rcell In rng.Cells

        If strPattern <> "" Then
            strInput = rcell.Value

            If regexp.test(strInput) Then
                MsgBox rcell & " Matched in Cell " & rcell.Address
            Else
                MsgBox "No Matches!"
            End If
        End If
    Next
End Sub

Related questions

MORE COOL STUFF

「水曜日」シーズン1の中心には大きなミステリーがあります

「水曜日」シーズン1の中心には大きなミステリーがあります

Netflixの「水曜日」は、典型的な10代のドラマ以上のものであり、実際、シーズン1にはその中心に大きなミステリーがあります.

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ケイト・ミドルトンは、州の夕食会と州の訪問中にカミラ・パーカー・ボウルズからスポットライトを奪いたくなかった、と専門家は言う.

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンが、オリビア・ワイルドが彼女とハリー・スタイルズとの間の「難しい」が「非常に友好的」な分割を恒久的にすることを望んでいる理由を見つけてください.

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする 

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする&nbsp;

エリザベス女王の死後、ケイト・ミドルトンが舞台裏で「非常に困難な時期」を過ごしていたと伝えられている理由を調べてください.

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セント ヘレナ島のジェイコブズ ラダーは 699 段の真っ直ぐ上る階段で、頂上に到達すると証明書が発行されるほどの難易度です。

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

パンデミックは終わったかもしれないが、Covid-19 は終わっていない

パンデミックは終わったかもしれないが、Covid-19 は終わっていない

2021 年 6 月 8 日にニューヨーク市で開催された covid-19 パンデミックで亡くなった人々の命を偲び、祝うために、ネーミング ザ ロスト メモリアルズが主催するイベントと行進の最中に、グリーンウッド墓地の正門から記念碑がぶら下がっています。週末、ジョー・バイデン大統領は、covid-19 パンデミックの終息を宣言しました。これは、過去 2 年以上にわたり、公の場でそうするための長い列の中で最新のものです。

デビル・イン・オハイオの予告編は、エミリー・デシャネルもオハイオにいることを明らかにしています

デビル・イン・オハイオの予告編は、エミリー・デシャネルもオハイオにいることを明らかにしています

オハイオ州のエミリー・デシャネル みんな早く来て、ボーンズが帰ってきた!まあ、ショーボーンズではなく、彼女を演じた俳優. エミリー・デシャネルに最後に会ってからしばらく経ちました.Emily Deschanel は、長期にわたるプロシージャルな Bones の Temperance “Bones” Brennan としてよく知られています。

ドナルド・トランプはFBIのマー・ア・ラーゴ襲撃映像をリリースする予定ですか?

ドナルド・トランプはFBIのマー・ア・ラーゴ襲撃映像をリリースする予定ですか?

どうやら、ドナルド・トランプに近い人々は、今月初めにFBIによって家宅捜索された彼のMar-a-Lago財産からの映像を公開するよう彼に勧めています. 前大統領はテープを公開するかどうかを確認していませんが、息子はフォックス・ニュースにそうなるだろうと語った.

Andor は、他の Star Wars ショーから大きな距離を置きます。

Andor は、他の Star Wars ショーから大きな距離を置きます。

アンドールの一場面。数十年前、ジョージ・ルーカスがスター・ウォーズのテレビ番組を制作するのを妨げた主な理由は、お金でした。

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、子供向けのパズルの本の序文を書き、ジョージ王子、シャーロット王女、ルイ王子と一緒にテキストを読むと述べた.

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

Yak's Produce は、数十個のつぶれたメロンを野生動物のリハビリ専門家であるレスリー グリーンと彼女のルイジアナ州の救助施設で暮らす 42 匹の動物に寄付しました。

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

8 枚目のスタジオ アルバムのリリースに向けて準備を進めているデミ ロヴァートは、「スーパー グレート ガイ」と付き合っている、と情報筋は PEOPLE に確認しています。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

ホームオフィスのセットアップ術を極めよう!AppExert の開発者は、家族全員が一緒にいる場合でも、在宅勤務の技術を習得しています。祖父や曽祖父が共同家族で暮らしていた頃の記憶がよみがえりました。

2022 年、私たちのデジタル ライフはどこで終わり、「リアル ライフ」はどこから始まるのでしょうか?

20 年前のタイムトラベラーでさえ、日常生活におけるデジタルおよびインターネットベースのサービスの重要性に驚くことでしょう。MySpace、eBay、Napster などのプラットフォームは、高速化に焦点を合わせた世界がどのようなものになるかを示してくれました。

ニューロマーケティングの秘密科学

ニューロマーケティングの秘密科学

マーケティング担当者が人間の欲望を操作するために使用する、最先端の (気味が悪いと言う人もいます) メソッドを探ります。カートをいっぱいにして 3 桁の領収書を持って店を出る前に、ほんの数点の商品を買いに行ったことはありませんか? あなたは一人じゃない。

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

私たちが住んでいる世界を確実に理解するには、データが必要です。ただし、空間参照がない場合、このデータは地理的コンテキストがないと役に立たなくなる可能性があります。

Language