【问题标题】:Regex trouble capturing everything before last letter or number正则表达式无法捕获最后一个字母或数字之前的所有内容
【发布时间】:2020-06-14 22:39:04
【问题描述】:

我想捕获最后一个字母或数字之前的所有内容。我不想在最后一个字母或数字之后匹配任何空格、“-”或“#013”。

这是我目前拥有的正则表达式,但它似乎与所有内容都匹配

(?<system_name>.*\w(?:[a-zA-Z]|[0-9]))



Current data:
469869-system 
476657-SYSTEM 
476657-system 
681125-system#013
981765-system#013
687755-system#013
438105-system#013
281055-system#013
485548-SYSTEM 
785455-system 
489418-system 
589568-system 
489661-SYSTEM 
486328-system -  - #015
286728-system -  - #015
SYSTEM-433455 
system

What I want to match:
469869-system 
476657-SYSTEM 
476657-system 
681125-system
981765-system
687755-system
438105-system
281055-system
485548-SYSTEM 
785455-system 
489418-system 
589568-system 
489661-SYSTEM 
486328-system
286728-system
SYSTEM-433455 
system

【问题讨论】:

  • 您使用什么语言/工具?来自regex tag info:“由于正则表达式尚未完全标准化,所有带有此标签的问题还应包含一个指定适用的编程语言或工具的标签。”
  • this 为您工作吗?
  • 是的,非常感谢!

标签: regex


【解决方案1】:

你可以使用:

^[\w-]+

地点:

  • ^#行首
  • [\w-]+#字符类,1个或多个单词字符或连字符

Demo & explanation

【讨论】:

    猜你喜欢
    • 2020-05-31
    • 1970-01-01
    • 2011-08-24
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多