問題タブ [lua-patterns]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - lua:パターンマッチングと電話番号の抽出
Luaで次の要件を持つ関数を作成するのに問題があります。
- 文字列
phone_number
と2桁country_code
を入力として受け取ります。 phone_number
の形式は{1|| ""}{country_code
}{10または11桁の携帯電話番号}
10桁または11桁の携帯電話番号を出力する必要があります。
I / Oの例:
phone_number
= "552234332344"、country_code
= "55" => "2234332344"
phone_number
= "15522343323443"、country_code
= "55" => "22343323443"
ありがとう!
lua - Luaパターンの大文字と小文字をLPegで区別する
私は(とりわけ)プレーンテキスト検索とLuaパターンを使用した検索をサポートするアプリを持っています。便利なように、アプリは大文字と小文字を区別しない検索をサポートしています。画像スニペットは次のとおりです。
与えられたLuaパターンを大文字と小文字を区別しないLuaパターンに変換するコードはあまりきれいではありません。基本的に、文字の前に奇数または偶数のエスケープ(%)が付いているかどうか、および角かっこ内にあるかどうかが心配です。画像に示されているパターンは次のようになります%a[bB][bB]%%[cC][%abB%%cC]
私はまだLPegを学ぶ機会がありませんでした、そしてこれが私の動機であるかもしれないと思います。
私の質問は、これがLPegで簡単に処理できたものかどうかです。
string - Luaパターンクエリ
大きな文字列から「ジョン」という単語を検出する必要があります。「ジョンはいい人だ」と言う ので、このパターンで単語を見つけます。
次のように使用します。
文字が複数回出現するかどうかを受け入れるために(たとえば、jooohnはいい人です)、パターンを次のように変更します
単語の間にある可能性のあるスペース(またはその他のアルファベット以外の文字)を無視する必要があるため(たとえば、joh; nはいい人です)、各文字に[^ az] *を追加すると、結果のパターンは次のようになります。
さて、これは「jooh!nはいい男だ」のような言葉にぴったりです。しかし、もし!繰り返し文字内に記号が表示され、パターンが失敗します。たとえば、jo!ohnは良い人で、パターンは検出されません。これを実現するためにパターンを変更するにはどうすればよいですか?
編集
例:
これは印刷されます
1 7
だが
シナリオ2でjoo!ohnnil
を検出できるパターンが必要な場合のみ印刷します
lua - ("bar"):find("(foo)?bar") が nil を返すのはなぜですか?
("bar"):find("(foo)?bar")
返してはいけません1, 3
か?
print(("bar"):find("(foo)*bar"))
どちらも機能しprint(("bar"):find("(foo)-bar"))
ません。
lua - Lua パターンマッチング
RTF 形式のタグを持つ Microsoft Lync 会話から値を引き出して取得したファイルがあります。サンプル ファイルは次のようになります。
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 >Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl ;\red0\green0\blue0 ;} {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 クレイグ...\embo0 \embo please\embo0 \embo close\embo0 \embo >out\embo0 \embo of\embo0 \embo your\embo0 \embo old\embo0 \embo client\embo0 \embo >and\embo0 \embo re-open\embo0\f1\par {*\lyncflags rtf=1}}
Lua スクリプトを使用して、RTF タグを削除し、会話のテキストだけを抽出しようとしています。したがって、私の関数の結果は次のようになります。
クレイグ...古いクライアントを閉じて、もう一度開いてください
string.gsub を正規表現で使用してパターンを一致させ、それらを空白に置き換えてテキストのみを残そうとしましたが、機能しません。これまでのstring.gsubのコードは次のとおりです。
どんな提案でも大歓迎です!
追加:
user1@capital.com @ 2013-01-18 17:48:03Z (TO: user2@capital.com)
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl ;\red0\green0\blue0; } {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 works\embo0 \embo for\embo0 \embo me..\embo0 \embo how\ embo0 \embo about\embo0 \emboembedding\embo0 \embo pictures?\embo0\f1\par {*\lyncflags rtf=1}}
user1@capital.com @ 2013-01-18 17:48:57Z (TO: user2@capital.com)
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl ;\red0\green0\blue0; } {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 I\embo0 \embo see\embo0 \embo it\embo0\f1\par {* \lyncflags rtf=1}}
user1@capital.com @ 2013-01-18 17:49:27Z (宛先: user2@capital.com)
{\rtf1\fbidis\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}} {\colortbl ;\red0\green0\blue0; } {*\generator Riched20 15.0.4420}{*\mmathPr\mwrapIndent1440 }\viewkind4\uc1 \pard\cf1\embo\f0\fs20 Let's\embo0 \embo try\embo0 \embo a\embo0 \embo meeting.\embo0 \f1\par {*\lyncflags rtf=1}}
xslt - Lua または XSL - 文字列から単語を引き出す Lync
私が使用しているソリューションでは両方が許可されているため、Lua や XSL で処理しているドキュメントがあります。処理中のデータは、Lync 2013 からの IM 会話をまとめたものです。以下のデータの値を抽出するパターン マッチング スクリプトをいくつか書くことができましたが、ユーザーはデータの表示方法を構成できるためです。 IM では、データはユーザーごとに異なる方法で保存されます。
必要なのは、メッセージの To、From、Date/Time、および Content のすべての値を引き出すスクリプトです。各単語が RTF タグで囲まれていると、次の文字列 '\embo0' が続くことに気付きました。
以下の例のようにデータ セット全体を処理して、サンプル データで目的の結果を生成する方法はありますか? 私が持っているスクリプトは、私が定義したパターン マッチング スキームの 1 つに一致する会話の一部のみを抽出し、それ以外はすべて削除することができます。
データ:
望ましい出力:
string - 重大なエラーを引き起こすアドオン (WoW、Lua)
チャット内で特定の単語を検索し、指定されたチャットフレームに送信するアドオンは機能しますが、ランダムにエラーが発生し、ゲームがクラッシュします
クラッシュした後、チートエンジンを開いてリージョンを参照し、何があったかを確認しました
そしてアドオンコード:
なぜこれがゲームをクラッシュさせているのか、誰でも私を助けることができますか?
string - 「.」を見つける string.find() で
私は簡単な文字列操作をしようとしています:拡張子なしでファイルの名前を取得します。のみ、string.find()
ドットに問題があるようです:
そしてドットのみ:
それはバグですか、それとも何か間違っていますか?
string - 特殊文字を使用した Lua での文字列操作
Lua で文字列をトリミングしたいのですが、文字列に特殊文字が含まれているために苦労しています。
例えばstr = "RG Ph 0%/15.00bpm"
を含むすべてを削除したい"/"
となることによってstr = "RG Ph 0%"
"%"
次のコードを見つけましたが、 and を"/"
適切に処理しているとは思いません。
何か案は?
windows - lua の文字列パターン マッチングがこれを行うのはなぜですか?
CPU と GPU の温度を監視する外部アプリケーションがあります...
これらの値を ( GetWindowTextを介して) 取得し、これらの値に対してパターン マッチングを行い、文字列から温度の数字を効果的に抽出するために、Lua をエイリアン拡張と共に使用して
います。パターンが LUA でどのように機能するかについて間違った考えを持っていますか (正規表現とまったく同じようには見えないため)。CPU 67.875 °C
私が使用しているパターンは[%d]+[.%d+]*
、0 から 100.0 までの任意の数字に一致するはずです。正しいですか?
それでも奇妙なことに、値が約 56.5 度に達すると、信じられないほど奇妙な出力が得られます(リンクを参照)。
なぜこうなった?また、0 から 100 までの正しい浮動小数点値を (文字列として) の形式で抽出するには
どうすればよいですか?XYY.ZZZ
X
Y
.
Z