zqiz 发表于 2024-8-18 16:01:14

go正则,怎样提取中文文本中间的词?

例:递归火山软件开发平台,怎样以定“火山”和“开发”为边界提取出“软件”两个字。大佬帮助下,谢谢。

小蜗牛 发表于 2024-8-18 22:36:38

这代码 视窗和服务器都能用~

<火山程序 类型 = "通常" 版本 = 1 />

方法 文本_取中间 <公开 静态 类型 = 文本型>
参数 欲操作的文本 <类型 = 文本型>
参数 前面文本 <类型 = 文本型>
参数 后面文本 <类型 = 文本型>
参数 起始搜寻位置 <类型 = 整数 @默认值 = 0>
参数 是否不区分大小写 <类型 = 逻辑型 注释 = "为真不区分大小写,为假区分。" @默认值 = 假>
{
    变量 前面位置 <类型 = 整数>
    变量 后面位置 <类型 = 整数>
    前面位置 = 寻找文本 (欲操作的文本, 前面文本, 起始搜寻位置, 是否不区分大小写)
    如果 (前面位置 != -1)
    {
      前面位置 = 前面位置 + 取文本长度 (前面文本)
      后面位置 = 寻找文本 (欲操作的文本, 后面文本, 前面位置, 是否不区分大小写)
      如果 (后面位置 != -1)
      {
            返回 (取文本中间 (欲操作的文本, 前面位置, 后面位置 - 前面位置))
      }
    }
    返回 ("")


}

小蜗牛 发表于 2024-8-18 22:42:34

抱歉..没发现写的正则~

xrea 发表于 2024-8-18 23:15:53

go本来是可以用切片解决的,火山封装了一层就不知道了

459943578 发表于 2024-8-18 23:54:02

<火山程序 类型 = "通常" 版本 = 1 />

变量 正则 <类型 = 正则表达式类>
变量 结果 <类型 = "文本型 [][]">
结果 = 正则.必须编译成功 ("火山(.*?)开发").查找所有文本子匹配 ("递归火山软件开发平台", -1)
换行输出 (结果 )

zqiz 发表于 2024-8-19 09:23:18

小蜗牛 发表于 2024-8-18 22:42
抱歉..没发现写的正则~

谢谢,小蜗牛大佬热心解答!

zqiz 发表于 2024-8-19 09:27:44

459943578 发表于 2024-8-18 23:54
变量 正则
变量 结果
结果 = 正则.必须编译成功 ("火山(.*?)开发").查找所有文本子匹配 ("递归火山软件 ...

谢谢大佬。看“查找文本匹配”和“查找所有文本子匹配”注释说明,看不明白。用“查找文本匹配”老包含边界。
页: [1]
查看完整版本: go正则,怎样提取中文文本中间的词?