跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一个字符串匹配的正则,或者有其他解决方法也可
未分類
18 2 月 2021

请教一个字符串匹配的正则,或者有其他解决方法也可

请教一个字符串匹配的正则,或者有其他解决方法也可

資深大佬 : mugglezzz 3

源数据 list<string>:

1.张三关于工作的说明
2.一份来自李四的说明
3.张三关于上班之看法
4.王五写了一份关于工作的总结

我的参数配置为:#关于#的# , #为需要模糊匹配的地方,那么我想要筛选出来的结果数据为 1 、4
这个参数配置是可修改的

请问正则应该咋写呢?或者有其他的筛选方式吗?谢谢各位

大佬有話說 (6)

  • 資深大佬 : br_wang

    就当前这个问题 `/^(.+)关于(.+)的(.+)$/` 这样是可以应付的。

    「这个参数配置是可修改的」,可以改是啥意思?修改「关于」和「的」关键字?还是「#」的位置,还是定义?

  • 主 資深大佬 : mugglezzz

    @br_wang #1 谢谢回答, [修改「关于」和「的」关键字?还是「#」的位置] ,这两种都有可能。我的做法是会用#分割这个配置参数,然后循环拼接出来这个正则,只是我不知道这个正则的规则是啥

  • 資深大佬 : Sunyanzi

    我没明白为啥你要循环拼正则出来 … 看你顶的描述好像是 Java … 对应写法如下 …

    Pattern.matches( “#关于#的#”.replace( “#”, “.+” ), sentence );

    最前面的字符串是参数配置 … 可以随意修改但需要注意不能含有正则关键字如点儿加号括号一类的 …

    后面 sentence 是你要匹配的字符串 … 正常情况下直接用这个匹配作为 filter 规则过一遍 List 就好 …

  • 資深大佬 : br_wang

    @Sunyanzi 我猜 @mugglezzz 的意思就是,同一个方法要分次处理不同的文本格式对应的数据源,所以这个正则是根据传入的配置参数来生成的,比如:

    – 运行 1:符合规则「#关于#的#」的 str
    – 运行 2:符合规则「#昨天#会议」的 str

    但如果应对#占位符可存在或不存在的场景,至少要用到后向查找之类的能力,生成正则就会复杂一些了……

  • 資深大佬 : Sunyanzi

    @br_wang 如果是这样的话 … 那是不是把配置作为参数传进来就好呢 ..?

    比如外层做一个循环 … 第一次用配置 Ⅰ 过一遍 … 第二次用配置 Ⅱ 再过一遍 …

    或者如果需要不同的 sentence 使用不同的规则 … 在源 List 里面分组就好 …

    至于正则那一堆断言 … 我不觉得主会用到 … 毕竟功能里不涉及捕获规则 … 只是模糊匹配而已 …

    最后 # 不存在的情况 … 我没太明白这会有什么问题 … 从语义上看就是去掉模糊的部分 …

    所以这时候 matches() 实际上就是 equals() … 我的代码可以正常运行结果也符合预期不是吗 …

  • 主 資深大佬 : mugglezzz

    @br_wang #4
    @Sunyanzi #5
    是的,我的场景就是 4 说的那样,由于我可能想要得到的结果不一样,所以传入的配置参数不一样,所以我在代码里面,正则就只能每次用#分割来拼接出来

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具