問題タブ [string-parsing]
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.
ruby - Ruby での安全な整数解析
たとえば、文字列があり、'123'
それを整数に変換したいと考えてい123
ます。
単純に を実行できることはわかっていますが、それはsome_string.to_i
に変換'lolipops'
さ0
れます。これは、私が考えている効果ではありません。無効なものを変換しようとすると、素敵で痛いException
. 0
そうしないと、有効な数値と数値ではない数値を区別できません。
編集:正規表現のトリックなしで、標準的な方法を探していました。
regex - 正規表現を使用して電子メール アドレスを検証するにはどうすればよいですか?
サーバー部分として IP アドレスを使用しないと仮定して、ほとんどの電子メール アドレスを正しく検証する正規表現を何年にもわたってゆっくりと開発してきました。
私はこれをいくつかの PHP プログラムで使用していますが、ほとんどの場合は機能します。しかし、時々、それを使用しているサイトで問題を抱えている人から連絡があり、最終的に調整を行う必要があります (最近、4 文字のTLDを許可していないことに気付きました)。
電子メールを検証するために使用した、または見た中で最も優れた正規表現は何ですか?
いくつかの短い式を使用する関数を使用するソリューションをいくつか見てきましたが、より複雑な関数でいくつかの短い式を使用するのではなく、単純な関数で 1 つの長い複雑な式を使用したいと考えています。
regex - ファイル名に基づいてファイルをディレクトリにソートするにはどうすればよいですか?
恐ろしい慣習で名前が付けられたすべてをソートする膨大な数のファイルがあります。
ここではいくつかの例を示します。
(4)_mr__mcloughlin____.txt
12__sir_john_farr____.txt
(b)mr__chope____.txt
dame_elaine_kellett-bowman____.txt
dr__blackburn______.txt
これらの名前は、それぞれ別の人 (話者) であるはずです。別の IT 部門の誰かが、スクリプトを使用して大量の XML ファイルからこれらを作成しましたが、ご覧のとおり、その命名は計り知れないほどばかげています。
文字通り何万ものこれらのファイルを並べ替え、1 人ごとに複数のテキスト ファイルを並べ替える必要があります。アンダースコアや乱数など、ファイル名を異なるものにする愚かな何かがそれぞれにあります。それらは話者別にソートする必要があります。
これは、スクリプトを使用してほとんどの作業を行う方が簡単で、戻って同じ名前のフォルダーをマージするだけで済みます。
これを行うために私が考えていた方法はいくつかあります。
- 各ファイルから名前を解析し、一意の名前ごとにフォルダーに並べ替えます。
- ファイル名からすべての一意の名前のリストを取得し、類似した名前の単純化された一意の名前のリストを調べて、それらが同じかどうかを尋ねます。これを判断すると、それに応じてすべてを並べ替えます。
Perl を使用する予定ですが、価値があれば新しい言語を試すこともできます。ディレクトリ内の各ファイル名を一度に 1 つずつ読み取り、実際の名前に解析する方法がわかりません。perlで正規表現を使用して解析する方法も完全にはわかりませんが、それはグーグル可能かもしれません。
並べ替えには、次のシェル コマンドを使用するつもりでした。
しかし、私が知っているのはそれだけなので、最も簡単です。
私が何をしようとしているのかについての疑似コードのアイデアさえ持っていないので、誰かがアクションの最良のシーケンスを知っているなら、私はすべて耳を傾けます。私は多くの助けを求めていると思います。どんな提案も受け入れます。助けてくれる人に感謝します。
B.
perl - c99 16 進浮動小数点表記を通常の表記に変換する Perl モジュールはありますか?
c99 スタイルの浮動小数点表記 (例: 0x1.0p23f) を Perl を使用して通常の浮動小数点数に変換するために使用できる組み込みライブラリはありますか (またはその逆)?
floating-point - Jython: コンマを含む float へのテキストの解析
シートからスキャンしたフロートをコンマを含むテキストとして解析するにはどうすればよいですか?
更新:申し訳ありませんが、明確ではありませんでした。locale モジュールを持たない jython 2.5 を使用しています。
javascript - エラーを引き起こさずにトークンを含まない文字列で split(token) を呼び出す方法は?
HTML マークアップの要素の ID として、次の 2 種類の文字列があります。
日付:
およびシーズン名:
日付には、月と日を区切るダッシュがあります。
季節は、他のトークンのない 1 つの単語です。
月または季節を次の新しい変数に割り当てたいと思います。
私がこれを行う場合:
月には機能しますが、トークンを含まないシーズン名で呼び出すと、エラーが発生しますか?
これを行う安全な方法は何ですか?
c++ - 数値を正しく解釈する方法(16進数、10進数、12月)
16進数、8進数、10進数の入力を受け取り、それらを整数変数に格納し、10進数形式への変換とともに出力するプログラムを作成しようとしています。例えば:
ユーザー入力:0x43、0123、65
プログラム出力:
だから明らかに私は数字を解釈する方法が必要ですが、それをどうやってやるのかわかりません。関数に読み込んだり文字列に変換したり、その逆を行ったりするなど、さまざまな方法を試しましたが(コード例についてはこちらを参照)、数値を解釈するには、元の入力を破棄する何らかの形式に変換する必要があります。
私が考えることができる唯一のことは、一度に文字を読み取る>>演算子をオーバーロードすることです。入力の先頭に0xまたは0が表示される場合、intに読み込まれる前に、入力全体を文字列に格納します。次に、プログラムは出力中に適切なマニピュレータを決定する必要があります。
これを行うためのより簡単な方法があるかどうかわからない場合は、助けていただければ幸いです。
編集:これは解決されましたが、誰かが興味を持っている場合は、コードを投稿することにしました。
c++ - 文字列から unsigned long を取得するにはどうすればよいですか?
C++ で文字列から unsigned long を取得する最も安全で最良の方法は何ですか?
私はいくつかの可能な方法を知っています。
最初に、atol から取得した符号付き long を変換します。
これに関する明らかな問題は、myStr に格納されている値が signed long に格納できる値よりも大きい場合にどうなるかということです。atol は何を取得しますか?
次の可能性は、strtoul を使用することです。
ただし、これは私のニーズに対して少し複雑です。シンプルな関数、文字列入力、符号なし long base 10 出力が欲しいです。また、エラー処理には多くの要望が残されています。
私が見つけた最後の可能性は、sscanf を使用することです。
繰り返しますが、エラー処理には多くの要望があり、私が望んでいるよりも少し複雑です。
残りの明らかなオプションは、以前の可能性のいずれかのラッパーを独自に作成するか、文字列を循環して ULONG_MAX に達するまで各桁を手動で変換するものを作成することです。
私の質問は、私の google-fu が見つけられなかった他のオプションは何ですか? 文字列を unsigned long にきれいに変換し、失敗時に例外をスローする C++ std ライブラリ内のものはありますか?
これがでたらめである場合は申し訳ありませんが、私の質問と完全に一致する質問は見つかりませんでした。
c# - この文字列から日付を取得するには?
私はこの文字列を持っています:
日付を(太字で)より使いやすい形式に抽出したい、たとえば 06-10-2009 15:38:16
これについて最善の方法は何ですか?
algorithm - 複数パスで文字列を解析するためのプログラミング イディオム
私は点字翻訳ライブラリに取り組んでおり、テキストの文字列を点字に翻訳する必要があります。これを複数のパスで行う予定ですが、文字列のどの部分が翻訳され、どの部分が翻訳されていないかを追跡する方法が必要なので、それらを再翻訳しません。
処理された文字列内の位置の範囲を追跡するクラスをいつでも作成でき、その後のパスでそれらを無視するように検索/置換アルゴリズムを設計できますが、よりエレガントな方法がないかどうか疑問に思っています同じことを達成するために。
マルチパス文字列変換はそれほど珍しいことではないと思いますが、それを行うためのオプションが何であるかはわかりません。