【问题标题】:preg_replace PHP to replaceall JAVApreg_replace PHP 替换所有 JAVA
【发布时间】:2014-08-22 13:25:12
【问题描述】:

谁能帮我用java转换这段代码?

$linkc= strtolower(preg_replace(array('/[^a-zA-Z0-9-éèàê€-]/', '/(-){2,9}/'), '_', $jour['nom']));
$linkc = preg_replace('/€/', '_', $linkc);
$link .= preg_replace('/[èéêëàáâãåäæìíîïòóôõöøùúûü]/', '', $linkc);
$nom = $jour['nom'];

我对正则表达式真的很陌生,首先我不太明白array('/[^a-zA-Z0-9-éèàê€-]/', '/(-){2,9}/')这个模式是什么意思,然后,我自己尝试了

String nom = rubrique.getNom();
nom = nom.replaceAll("[èéêëàáâãåäæìíîïòóôõöøùúûü]", "");
nom = nom.replaceAll("[^a-zA-Z0-9-éèàê€-]", "_");
nom = nom.replaceAll("(-){2,9}", "_");

不会删除重音字母....

感谢您的帮助!!!

【问题讨论】:

    标签: java php preg-replace replaceall


    【解决方案1】:

    表达式

    array('/[^a-zA-Z0-9-éèàê€-]/', '/(-){2,9}/')

    意思是:

    “数组中的一个正则表达式必须适合”。这些正则表达式是:

    '/[^a-zA-Z0-9-éèàê€-]/' - 只有一个字符,不是 a-z,不是 A-Z,不是 0-9,不是 é 等。可能不是你想要的?

    '/(-){2,9}/' - 至少 2 个,最多 9 个“-” - 可能也不是你想要的。

    为了将所有重音字符替换为“-”:

     ... '/[éèàê€]+/', '-' ....
    

    也可以查看this,您可能会针对“即时”输入测试正则表达式

    此外:preg_replace 可能对多字节字符产生任意结果。您可能看过mb_ereg_replace,它能够处理表达式中的 é 等多字节字符等。

    【讨论】:

    • 事实上,我需要在Java中转换这个,你知道吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多