簡體   English   中英

如何用正則表達式匹配其他語言的單詞

[英]how to match other languages words with regex

用英文單詞替換希臘語給定文本中的單詞。

這里是一個例子:

 var str= "Ενώ Gallant δεν λειτουργεί στην προσπάθεια να χτίσει πια μηχανές αποκωδικοποίησης, οι άλλοι."

function findword(){
  word = new RegExp("\\b(προσπάθεια)\\b","gi")
  var sust = str.replace(word,'effort');
}

它應返回:“ΕνώGallantδενλειτουργείστην 努力 ναχτίσειπιαμηχανέςαποκωδικοποίησης,οιάλλοι。

嘗試使用JavaScript進行操作時失敗了,但是我讀到這是不可能的,因為該語言不處理英語以外的Unicode字符。 我發現的唯一可能性是xregexp,但似乎只能檢測字符類而不是單個單詞。 ¿真的不可能使其在JavaScript中起作用嗎?

Python 3文檔指出該語言可以處理unicode字符,但是在這種情況下,似乎有必要用unicode代碼編寫字符...使用languaje可以用我寫的最簡單的方式替換單詞編碼? Python,Java,Perl ...?

應該這樣做:

'Ενώ Gallant δεν λειτουργεί στην προσπάθεια να χτίσει πια μηχανές αποκωδικοποίησης, οι άλλοι.'.replace( /(προσπάθεια)/g, 'effort' )

編輯

我認為這正是您想要的:

String.prototype.translate = function translate( greek, english ) {
  return this.replace( new RegExp( '(' + greek + ')' ), english );
}

var translatedString = 'Ενώ Gallant δεν λειτουργεί στην προσπάθεια να χτίσει πια μηχανές αποκωδικοποίησης, οι άλλοι.'.translate( 'προσπάθεια', 'effort' );
console.log( translatedString );

Perl具有出色的unicode處理能力。 例如以下代碼:

use 5.016;
use warnings;
use utf8;
use open qw(:std :utf8);

my $str= "Ενώ Gallant δεν λειτουργεί στην προσπάθεια να χτίσει πια μηχανές αποκωδικοποίησης, οι άλλοι.";
$str =~ s/\bπροσπάθεια\b/effort/g;
say $str;

版畫

Ενώ Gallant δεν λειτουργεί στην effort να χτίσει πια μηχανές αποκωδικοποίησης, οι άλλοι.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM