请问 一段文本 如何判断当中是否有几个关键词
比如 "常用软件 安装器"如何判断当中含了件 和器貌似
StringInStr 只能匹配连在一起 的 常用软件 安装器
软件下载器
一件非常好的器具
都带有 件 和器
我想做个exe 遇到带有特定词语的 就提取出来
但怎么判断呢 他们并非连在一起 (.*?件.*?器) 用正则 {:face (203):} 又涉及到中文分词,人工智能.
以下代码仅将"件,器"作为"名词","数量词"时匹配,不保证正确.慎用
仅仅抛砖引玉
#include <Array.au3>
Local $Str = _
'常用软件 安装器' & @CRLF & @CRLF & _
'软件下载器' & @CRLF & @CRLF & _
'一件非常好的器具' & @CRLF & @CRLF & _
'都带有 件 和器' & @CRLF & @CRLF & _
'我想做个exe 遇到带有特定词语的 就提取出来' & @CRLF & @CRLF & @CRLF & _
'但怎么判断呢 他们并非连在一起'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '[^的地得 ].*?[^的地得 ][件器]|[件器].*?\s', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中元素为: ' & $Test)
_ArrayDisplay($Test, UBound($Test)) 如果多个关键词前后位置不定,貌似还是循环用 StringInStr() 判断比较简单… 楼上的怎么用呢。。单字匹配吗
#include <Array.au3>
Local $Str = _
'常用软件 安装器' & @CRLF & @CRLF & _
'软件下载器' & @CRLF & @CRLF & _
'一件非常好的器具' & @CRLF & @CRLF & _
'都带有 件 和器' & @CRLF & @CRLF & _
'我想做个exe 遇到带有特定词语的 就提取出来' & @CRLF & @CRLF & @CRLF & _
'但怎么判断呢 他们并非连在一起'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '[^的地得 ].*?[^的地得 ][件器]|[件器].*?\s', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中元素为: ' & $Test)
_ArrayDisplay($Test, UBound($Test))
这个怎么匹配 某一行有呢 正则应该是较简单的解决方法
页:
[1]