【问题标题】:Regular expression to match userdeffields匹配用户定义字段的正则表达式
【发布时间】:2015-11-04 17:13:09
【问题描述】:

我正在寻找一个匹配以下内容的正则表达式:

LiqUserDefField#(where#=1–2
UserDefField(#=1–18)
UserDefinedField#(where#=1–3)
UserDefType#(where#=1–2)
UserDefinedField#(#=1–10)

我想回来:

LiqUserDefField1
LiqUserDefField2

UserDefField1
UserDefField2
UserDefField3
UserDefField4
UserDefField5
UserDefField6
UserDefField7
UserDefField8
UserDefField9
UserDefField10
UserDefField11
UserDefField12
UserDefField13
UserDefField14
UserDefField15
UserDefField16
UserDefField17
UserDefField18

UserDefinedField1
UserDefinedField2
UserDefinedField3

UserDefType1
UserDefType2
UserDefType3

UserDefField1
UserDefField2
UserDefField3
UserDefField4
UserDefField5
UserDefField6
UserDefField7
UserDefField8
UserDefField9
UserDefField10

我已经在 Regex101.com 上玩了几个小时了,但我没有取得任何进展。我会让自己感到尴尬,并展示我迄今为止一直在尝试的东西:

\w+UserDef\w+\#\(\w+\#\=\(\d)\-(\d) 

我在 Excel VBA 中使用 Microsoft Regex Parser。

这是我想出的一个例子:Regex101

【问题讨论】:

  • 您使用的是哪种正则表达式(例如 PHP、Java、JS 等)?
  • 对不起,我忘了提。我在 Excel VBA 中使用 Microsoft Regex Parser。我已经更新了我的帖子。

标签: regex excel vba


【解决方案1】:

试试这个:

LiqUserDefField[1-2]|UserDefField(1[0-8]|[0-9])|UserDefinedField[0-3]|UserDefType[1-3]|UserDefinedField(10|[0-9])

查看Regex101


对于更通用的匹配器(根据要求),您可以将其简化为:

[a-zA-Z]+(Field|Type)[0-9]{1,2}

请参阅Regex101

【讨论】:

  • 谢谢乔纳森。虽然这确实有效,但我正在寻找更通用的东西,因为我还有其他未包含的用户定义字段,其中一些我还不知道是什么。我不想每次得到一组新字段时都重新编码。
  • 在用户定义的字段被拆分后匹配它们非常有效,但我需要从我帖子中的第一组字段中匹配它们。 LiqUserDefField#(where#=1–2 etc,
  • 我已经更新了我原来的帖子。我已经取得了一些进展,但还不够。
  • 我现在才回到这个话题。你能看看我最新的正则表达式并告诉我我能做些什么来改进它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
相关资源
最近更新 更多