以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助]跨表引用 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=161645)
|
-- 作者:天一生水
-- 发布时间:2021/3/25 12:21:00
-- [求助]跨表引用
老师好!
我把单词表里包含的词性缩写,在词性表里找到后,赋值中文词性。遇到“pron.”时,会把“n.”的词性也提取出来。
怎样避免这类重复提取?
谢谢!
此主题相关图片如下:截屏图片.jpg
此主题相关图片如下:截屏图片1.jpg
......
Case "中文" Dim str As String = "" For Each dr As DataRow In DataTables("词性表").DataRows If e.DataRow("中文").Contains(dr("词性缩写")) Then str += dr("词性") & ";" End If e.DataRow("词性") = str.Trim(";") Next
|
-- 作者:有点蓝
-- 发布时间:2021/3/25 13:40:00
--
If ("." & e.DataRow("中文")).Contains("." & dr("词性缩写")) Then
|
-- 作者:天一生水
-- 发布时间:2021/3/25 20:14:00
--
谢谢!
忘了这种多词性的情况,是不是需要去掉第一次包含的字符后,再循环一次? 此主题相关图片如下:截屏图片 (1).jpg
[此贴子已经被作者于2021/3/25 20:30:47编辑过]
|
-- 作者:有点蓝
-- 发布时间:2021/3/25 20:35:00
--
这种没有办法,没有规律的规则无法处理
|
-- 作者:天一生水
-- 发布时间:2021/3/25 22:45:00
--
这样可以,但是运行的慢一些。
......
Case "中文" Dim str As String = "" Dim rgx As New RegularExpressions.Regex("[^a-zA-Z\\.\\/]") \'只允许英文字母及英文句号-取反 For Each dr As DataRow In DataTables("词性表").DataRows If e.DataRow("中文") <> "" Then Dim sts() As String = rgx.Replace(e.DataRow("中文"),"").split(".") For Each st As String In sts If st = dr("词性缩写").replace(".","") Then str += dr("词性") & ";" End If e.DataRow("词性") = str.Trim(";") Next End If Next
......
|