java如何将正则表达式与阿拉伯语文本一起使用 1 年,2 月 Questions & Answers 776 我正在试图找到阿拉伯语单词的主茎,用户将输入لاعبو,程序将尝试从单词中删除ون,单词的剩余部分将是لاعب,然后尝试在我的词干列表中找到主茎لعب,我可以用regex或任何建议这样做吗。谢谢
# 1 楼答案 如今,包括Java在内的大多数正则表达式引擎都支持Unicode。对于您的特定情况,您需要以下内容: String text = "لاعبون"; text.replaceAll("\\u0648\\u0646", ""); 基本上,您所需要做的就是用空字符串替换要删除的每个特定Unicode代码点。做了,做了
# 3 楼答案 您所描述的问题将有一大组变量。你知道所有的前缀、后缀吗?你能列出它们吗 如果您可以同时执行上述两项操作,那么将提供一个列表,您可以根据该列表测试您的单词,并根据需要删除字符 参见前面对类似问题的回答(How to ban words with diacritics using a blacklist array and regex?) 将您的字符转换为UTF-8中的字符表示形式(我相信这将为您节省一些麻烦。) 然后使用简单的正则表达式 比如说(因为我现在不能自己转换这些)ون=x021-x023 您的作品(转换为16位)被推入regex并通过此>;s/^x021-x023//g 将从您的文字中删除x021-x023 将其转换回您的正常角色集 你有你的短词
# 4 楼答案 这里是完整的例子 import java.util.regex.Matcher; import java.util.regex.Pattern; public class regex { public static void main(String args[]) { Pattern p = Pattern.compile("(.*)" + "ون"); Matcher m = p.matcher("لاعبون"); Matcher m2 = p.matcher("يييي"); System.out.println(m.matches()); System.out.println(m.group(1)); System.out.println(m2.matches()); } } 将打印 true لاعب false
# 1 楼答案
如今,包括Java在内的大多数正则表达式引擎都支持Unicode。对于您的特定情况,您需要以下内容:
基本上,您所需要做的就是用空字符串替换要删除的每个特定Unicode代码点。做了,做了
# 2 楼答案
由于每个glyf都保留字符代码,因此与英语相比没有太大差异。您应该只写下匹配3个字符根的模式,然后编写语法将它们转换为另一个模式/模板
# 3 楼答案
您所描述的问题将有一大组变量。你知道所有的前缀、后缀吗?你能列出它们吗
如果您可以同时执行上述两项操作,那么将提供一个列表,您可以根据该列表测试您的单词,并根据需要删除字符
参见前面对类似问题的回答(How to ban words with diacritics using a blacklist array and regex?)
将您的字符转换为UTF-8中的字符表示形式(我相信这将为您节省一些麻烦。)
然后使用简单的正则表达式
比如说(因为我现在不能自己转换这些)ون=x021-x023
您的作品(转换为16位)被推入regex并通过此>;s/^x021-x023//g
将从您的文字中删除x021-x023
将其转换回您的正常角色集
你有你的短词
# 4 楼答案
这里是完整的例子
}
将打印