回答

收藏

如何在 Go 中执行不区分大小写的正则表达式?

技术问答 技术问答 265 人阅读 | 0 人回复 | 2023-09-12

现在,当然,我可以写我的正则表达来处理这两种情况,比如regexp.Compile("[a-zA-Z]"),但我的正则表达式是基于用户提供的字符串:- S! r* d/ M, y
    reg,err := regexp.Compile(strings.Replace(s.Name," ","[ \\._-]",-1))
    3 o, f  ^! i* w3 ~' j  e) T
s.Name名字在哪里?这可能类似于西北偏北。现在,对我来说,最明显的解决方案是遍历每个字符s.Name并为每一个字母写上[nN]”:& N5 C& ]5 U" ]$ ]0 t
    7 B2 H) ?3 G9 u9 \4 h
  • for i := 0; i 但我觉得这是一个相当不优雅的解决方案。速度并不是真正的问题,但我需要知道是否有其他方法。: T( U2 R) B: z% c/ a
  •                                                                & g' O  t1 b: G& ?. F
  •     解决方案:                                                               , m& Q  i( ^) F  V
  •                                                                 您可以将不区分大小写的标志设置为正则表达式的第一项。$ T# C# H3 `% T# a1 c. M6 E
  • 可以添加"(?i)"在正则表达式的开头做到这一点。[code]reg,err := regexp.Compile("(?i)" strings.Replace(s.Name," ","[ \\._-]",-1))
    : ~# P! ^8 e8 {4 P; p/ v
它看起来像固定的正则表达式。
+ Y' R. ~4 e* D7 N4 e
    r := regexp.MustCompile(`(?i)CaSe`): s2 D& Z' f, D% D4 `
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则