Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Wordnet如何知道字符串是否是有效的查询字符串_Regex_Perl_Wordnet - Fatal编程技术网

Regex Wordnet如何知道字符串是否是有效的查询字符串

Regex Wordnet如何知道字符串是否是有效的查询字符串,regex,perl,wordnet,Regex,Perl,Wordnet,因此,我无法从Wordnet::SenseRelate调用函数,因为文本中的一些“单词”不是有效的查询。我试着用try-and-catch来包围它,这样程序就不会退出并跳过它,但是没有运气。我想使用Wordnet::QueryData检查一个单词是否有效,但当我使用以下无效单词时,它将退出: $wn->querySense("#44"); 我得到: (querySense) Bad query string: #44 在语句中可以找到所使用的正则表达式: my ($word, $po

因此,我无法从Wordnet::SenseRelate调用函数,因为文本中的一些“单词”不是有效的查询。我试着用try-and-catch来包围它,这样程序就不会退出并跳过它,但是没有运气。我想使用Wordnet::QueryData检查一个单词是否有效,但当我使用以下无效单词时,它将退出:

$wn->querySense("#44");
我得到:

(querySense) Bad query string: #44 

在语句中可以找到所使用的正则表达式:

my ($word, $pos, $sense) = $string =~ /^([^\#]+)(?:\#([^\#]+)(?:\#(\d+))?)?$/;
如果对是否接受令牌有疑问,请根据此正则表达式对其进行测试


在评论特定问题时,不能有任何前导或尾随#字符(遇到的问题)。如果存在#个字符,则查询字符串中可以有1个或2个字符,但不能超过2个。#字符如果作为分隔符来确定什么是单词,什么是词性,什么是意义。

我想这是冲突的,因为#和查询可以像狗一样说的方式#n#1,我最终删除了#出现点。。。