問題タブ [character-properties]

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.

0 投票する
1 に答える
7984 参照

java - Matching Unicode Dashes in Java Regular Expressions?

I'm trying to craft a Java regular expression to split strings of the general format "foo - bar" into "foo" and "bar" using Pattern.split(). The "-" character may be one of several dashes: the ASCII '-', the em-dash, the en-dash, etc. I've constructed the following regular expression:

which, if I'm reading the Pattern documentation correctly, should capture any of the unicode dashes or the ascii dash, when surrounded on both sides by whitespace. I'm using the pattern as follows:

No joy. For the sample input below, the dash is not detected, and titleSegmentSeparator.matcher(sectionTitle).find() returns false!

In order to make sure I wasn't missing any unusual character entities, I used System.out to print some debug information. The output is as follows -- each character is followed by the output of (int)char, which should be its' unicode code point, no?

Sample input:

Study Summary (1 of 10) – Competition

S(83)t(116)u(117)d(100)y(121) (32)S(83)u(117)m(109)m(109)a(97)r(114)y(121) (32)((40)1(49) (32)o(111)f(102) (32)1(49)0(48))(41) (32)–(8211) (32)C(67)o(111)m(109)p(112)e(101)t(116)i(105)t(116)i(105)o(111)n(110)

It looks to me like that dash is codepoint 8211, which should be matched by the regex, but it isn't! What's going on here?

0 投票する
2 に答える
3067 参照

regex - すべてのUnicode引用符に一致する正規表現

すべてのUnicode引用符に一致する単純な正規表現はありますか?または、次のように手動でコーディングする必要がありますか?

読んでくれてありがとう。

ブライアン

0 投票する
1 に答える
271 参照

regex - Unicode 正規表現 - 343 文字で失敗する

以下の正規表現を使用して、非ラテン文字を除外しています。その結果、342 文字を超える文字列を使用すると、関数が失敗し、すべてが中止され、Web サイト接続がリセットされることがわかりました。

任意の句読点文字に一致する \p{P} ユニコード文字プロパティにまで絞り込みました。

問題がどこにあるかを正確に知っている/見ている人はいますか?

preg_match('/^([\p{P}\p{S}&\p{Latin}0-9]|\s)*$/u', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');

0 投票する
1 に答える
13805 参照

java - Unicode 制御文字の置換

Java の文字列内の特殊な制御文字をすべて置き換える必要があります。

Google maps API v3 についてお聞きしたいのですが、Google はこれらの文字を気に入らないようです。

例: http://www.google.com/maps/api/geocode/json?sensor=false&address=NEW%20YORK%C2%8F

この URL には次の文字が含まれています: http://www.fileformat.info/info/unicode/char/008f/index.htm

データを受け取ったので、このデータをジオコーディングする必要があります。一部の文字がジオコーディングを通過しないことはわかっていますが、正確なリストはわかりません。

この問題に関するドキュメントを見つけることができなかったので、Google が好まない文字のリストは次のとおりだと思います: http://www.fileformat.info/info/unicode/category/Cc/list.htm

これらの文字を取り除くために既に構築された関数はありますか、または新しいものを構築して、1 つずつ置換する必要がありますか?

それとも、仕事をするための良い正規表現はありますか?

そして、Googleが嫌いな文字の正確なリストを誰か知っていますか?

編集:GoogleはこのためのWebページを作成しました:

https://developers.google.com/maps/documentation/webservices/?hl=fr#BuildingURLs

0 投票する
1 に答える
876 参照

python - Unicode文字を使用したPython正規表現のバグ?

短編小説:

正規表現^を含むUnicode文字の文字列と一致しないのはなぜですか?$私が理解している限り^、文字列(行)の始まりと$-の終わりを表します。

0 投票する
5 に答える
8385 参照

unicode - Unicode 文字の優先表示幅 (列) を知る方法は?

UTF-16leUTF-8など、さまざまな Unicode エンコーディングでは、1 文字が 2 バイトまたは 3 バイトを占める場合があります。多くの Unicode アプリケーションは、Unicode 文字がすべてラテン文字であるように、Unicode 文字の表示幅を考慮しません。たとえば、80列のテキストでは、1 行に40 個の漢字または80 個のラテン文字を含める必要がありますが、ほとんどのアプリケーション (Eclipse、Notepad++、およびすべてのよく知られているテキスト エディターなど、良い例外があれば敢えて) をカウントするだけです。各漢字をラテン文字として 1 幅として。これは確かに結果のフォーマットを醜く、整列させません。

たとえば、タブ幅が 8 の場合、次のように醜い結果が得られます (すべての Unicode を 1 表示幅としてカウントします)。

ただし、予想される形式は次のとおりです (各漢字を 2 幅としてカウントします)。

文字の表示幅の計算が不適切なため、これらのエディターは、タブの配置、行の折り返し、段落の再フォーマットを行うときにまったく役に立たなくなります。

ただし、文字の幅はフォントによって異なる場合がありますが、固定サイズの端末フォントのすべての場合、漢字は常に倍幅です。つまり、フォントに関係なく、各漢字は 2 幅で表示することが望ましいということです。

解決策の 1 つは、エンコーディングをGB2312に変換することで正しい幅を取得できることです。GB2312エンコーディングでは、各漢字が 2 バイトかかります。ただし、一部の Unicode 文字は GB2312 文字セット (またはGBK文字セット)には存在しません。また、一般に、エンコードされたサイズ (バイト単位) から表示幅を計算することはお勧めできません。

Unicode の ( \u0080.. \uFFFF) の範囲内のすべての文字を単純に 2 幅として計算することも正しくありません。これは、範囲内に 1 幅の文字が多数散在しているためです。

また、アラビア文字や韓国語の文字は、任意の数の Unicode コード ポイントで単語/文字を構成するため、表示幅を計算するのも困難です。

そのため、Unicode コード ポイントの表示幅は整数ではない可能性がありますが、それで問題ないと思います。実際には、整数に固定することができます。少なくとも、何もないよりはましです。

では、Unicode 標準の char の優先表示幅に関連する属性はありますか? または、表示幅を計算する Java ライブラリ関数はありますか?

0 投票する
2 に答える
1088 参照

java - Java Unicode 正規表現

このようなテキストがあります。

ue280, ue340 を \ue280, \ue340 に正規表現で置き換えたい

解決策はありますか

前もって感謝します

0 投票する
3 に答える
16160 参照

regex - スペースを除く英数字以外の文字に一致する Perl 正規表現を作成するにはどうすればよいですか?

英数字以外のすべての文字に一致する Perl 正規表現/\W/iがありますが、無視したいスペースにも一致します。スペース以外の英数字以外の文字と一致させるにはどうすればよいですか?

0 投票する
7 に答える
18934 参照

php - PHP5.2でUnicode空白を削除する

string(6) " page"最初の空白が0xc2a0の改行しないスペースである場合、どうすればトリミングできますか?

私は試しましtrim()preg_match('/^\s*(.*)\s*$/u', $key, $m);

別の質問:これらの文字を確実にコピーするにはどうすればよいですか?それらは「通常の」スペースに変換されているように見えるため、デバッグが困難です。

0 投票する
1 に答える
169 参照

c# - 正規表現と DB の読み取り/書き込みにおける Unicode

おやすみなさい、

私は現在、正規表現マッチングに基づいて C# で人間の言語用の非常に単純な字句解析器に取り組んでおり、現在、ターゲット言語で可能なすべての句読点記号と一致できる正規表現と、一致できる別のものを指定する問題に直面しています。あらゆる種類の空白。\p{P}ここスタックオーバーフローと別のサイトで検索した後、句読点と句読点にそれぞれ正規表現を使用できることがわかりました\p{Z}テキストファイルから読み取るときに機能します。問題は、最終的なプログラムでは、SQL データベースからレコードを読み取り、この字句解析器を使用してそれらを処理する必要があるということです。DB 内のレコードのエンコーディングが何であるかはわかりません。これはこの状況で問題になる可能性がありますか? 上記の正規表現は、エンコーディングに関係なく、入力のすべての句読点と空白文字に一致できますか?

どうもありがとうございました。