关于正则表达式在使用时, 提取文字符号不完整。

有人一不小心 2021-4-4 782

代码:

文件夹名字 = Regex.FindAll("手动变速器传动桥(SH19M6) 手动变速器油 车上检查.pdf","\\b\\S+\\b")

Log.Info(文件夹名字)

运行:

[09:58:12]选中的内容 第2行:[
"手动变速器传动桥(SH19M6",
"手动变速器油",
"车上检查.pdf"
]

运行代码后,文字后面的反括号无法捕捉到。无法捕捉到,居然还运行出来了。


对代码进行更改,专门对括号进行了描述。

文件夹名字 = Regex.FindAll("手动变速器传动桥(SH19M6) 手动变速器油 车上检查.pdf","\\b\\S+\\)?\\b")

Log.Info(文件夹名字)
[10:16:23]选中的内容 第2行:[
"手动变速器传动桥(SH19M6",
"手动变速器油",
"车上检查.pdf"
]

在正则表达式中,专门对反括号进行了描述,反而运行不出来了。

文件夹名字 = Regex.FindAll("手动变速器传动桥(SH19M6) 手动变速器油 车上检查.pdf","\\b\\S+\\)\\b")

Log.Info(文件夹名字)
[10:19:24]选中的内容 第2行:[]


帮我分析一下,看是什么地方出了问题,导致这个反括号获取不完整。


最新回复 (2)
  • 瞌睡蟲子 2021-4-4
    2
    这个问题确实诡异,感觉是引擎处理问题。理论上)两边是边界,按贪婪匹配匹配的话)是要包含再\\S+里面的。官方看下吧
    文件夹名字 = Regex.FindAll("手动变速器传动桥(SH19M6) 手动变速器油 车上检查.pdf","\\b.*?\\b")
    TracePrint(文件夹名字)
  • 3
    将代码改一下
    文件夹名字 = Regex.FindAll("手动变速器传动桥(SH19M6) 手动变速器油 车上检查.pdf","\\b\\S+\\s")
    Log.Info(文件夹名字)
    这样就可以运行完整,,再裁切一下空白。获取想要的数据了
    [09:06:48]流程 选中的内容 开始运行
    [09:06:48]选中的内容 第2行:[ "手动变速器传动桥(SH19M6) ", "手动变速器油 " ]
    [09:06:48]选中的内容 运行已结束
返回
发新帖