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