[英]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.