栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从Java中的给定文本中提取阿拉伯语短语

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从Java中的给定文本中提取阿拉伯语短语

[...]
是字符类,字符类只能匹配它指定的一个字符。例如,像字符类
[abc]
只能匹配
a
OR
b
OR
c
。因此,如果您只想查找单词,
abc
请不要将其括起来
[...]

另一个问题是您

\s
用作单词分隔符,因此在下面的字符串中

String data = "foo foo foo foo";

正则表达式

\sfoo\s
将无法首先匹配,
foo
因为 之前没有空格
因此,它将找到第一个匹配项

String data = "foo foo foo foo";//      this one--^^^^^

现在,由于正则表达式在第二秒后就消耗了空间,

foo
因此无法在下一场比赛中重复使用它,因此第三次
foo
也将被跳过,因为之前没有可用的空间来匹配。
您也不会匹配,
foo
因为这次 之后 没有空格了。

要解决此问题,您可以使用

\b
- 单词边界,它检查它代表的位置是否在字母数字字符与非字母数字字符之间(或字符串的开始/结尾)。

所以代替

Pattern p = Pattern.compile("[\s" + qp + "\s]");

Pattern p = Pattern.compile("\b" + qp + "\b");Pattern p = Pattern.compile("\b" + qp + "\b",Pattern.UNICODE_CHARACTER_CLASS);

确保

\b
在预定义的字母数字类中包含阿拉伯字符。

更新:

我不确定您的单词是否可以包含正则表达式元字符(例如)

{
[
+
*
,以防万一,您还可以添加转义机制以将此类字符转换为文字。

所以

"\b" + qp + "\b"

可以变成

"\b" + Pattern.quote(qp) + "\b"


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号