問題タブ [character-class]
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.
php - UTF-8 モードの正規表現での非 ASCII 文字
質問
PHPマニュアルには次のように記載されていますが、
ペルシャ数字が「UTF-8モード」で一致\d
するのはなぜですか?[[:digit:]]
推敲
関連のない質問の回答者の発言では、正規表現では、 \d
ASCII 数字だけでなく、たとえばペルシャ数字 ( ) にも一致0
する9
ことが言及されてい۰ ۱ ۲ ۳ ۴ ۵ ۶ ۷
ます。
上記の質問はjavaとタグ付けされていますが、動作は PHP でも観察できます。これを念頭に置いて、次の「テスト」を作成しました。
結果の配列には、のみ$capture
の一致が含まれます。5
修飾子を使用しu
て「UTF-8 モード」をオンにし、これを実行します。
$capture
との両方۳
に一致が含まれます5
。
ノート
- この質問はPHP 5.6.22(最新のもの)に関するものです
- どちらのテストも、
C
ロケールを明示的に使用して実行されました。
perl - [^\w] は一部の単語の文字に一致するのに [^\p{Word}] には一致しないのはなぜですか?
Unicode プロパティに一致する文字を出力する Perl スクリプトを作成しました。これまでのところ、ほとんどのプロパティで問題なく機能しているようです。
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ
ÿ
しかし、一致する文字間で出力され[^\w]
ます。これらの文字はむしろ一致するはず\w
です。奇妙なことに、それらは一致し\p{Word}
ます。
私は成功せずに試しました:
map { decode ( "UTF-8", $_ ) }
map { pack 'U0C*', unpack 'C*', $_ }
[^\w]
それらの単語の文字と一致しないようにするにはどうすればよいですか?
chars.pl
良い:
良い:
悪い:
Perl v5.14.2
regex - Lua パターンと一致する正確な Ascii コード
プロジェクトを Lua から C++ に翻訳しています。Lua バージョンでは、Lua の正規表現を使用しますが、目的が非常に単純であるため、C++ では文字をいくつかの Ascii コードと比較するだけで実行できます。
ただし、そのためには、各文字クラスが一致する正確な ASCII コードが必要です。
例として、 は%s
すべてのスペース文字に一致しますが、これらの文字は正確には何ですか? すべての Lua 文字クラスについて知る必要があります。
java - Java正規表現で空の文字クラスを表す方法
どの文字とも一致しない文字クラスを作成したい。今のところ、次のようなパターンを表しています。
あるいは
これを行う適切な方法はありますか?
注: 文字クラスを含まない代替ソリューション (否定先読みなど) を提供する必要はありません。それを行う「正しい」方法があるかどうかを知りたいだけです。
更新: ユーザーが最初に入力した内容の簡易版をユーザーに出力する機能を実装しています。文字クラスを単純化しているため、現在のバージョンで[]
は[a&&b]
. もう一度解析する[]
と、エラーがスローされますが、これは私が望んでいるものではありません。したがって、次のようなものを表示してユーザー入力を変更しない適切な方法があるかどうかを知りたかったのはそのためです。^$
c++ - isdigit() は単純なプログラムでは機能しませんか?
コードにエラーは表示されませんが、数字を入力するたびに「数字ではありません」と表示されます。
awk - 正規表現 "^[[:digit:]]$" が AWK/GAWK で期待どおりに機能しない
RHEL 上の私の GAWK バージョンは次のとおりです。
最初のフィールドにすべての数字がある場合に行を印刷したかった (特殊文字はなく、スペースも考慮されていない)
ここで何がうまくいかないのですか?私の AWK バージョンは GNU 文字クラスを認識しませんか? 親切に助けて