gpt4 book ai didi

java - 正则表达式至少具有两个选项之一,但按顺序

转载 作者:行者123 更新时间:2023-11-30 06:06:15 24 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式(用于 Java 模式),该正则表达式将匹配可能包含一个字母的字符串,该字母可能后跟一个空格然后是数字,但必须至少包含其中一个。例如,应匹配以下字符串:

  • “5”
  • “b 9”
  • “8”

但是,它不应匹配空字符串 ("")。

此外,我想让每个组件都成为一个命名捕获组。

以下方法有效,但允许空字符串。

"(?<let>\\p{Alpha})?( (?<num>\\p{Digit}))?"

最佳答案

要确保至少有一个,您可以在开头使用lookahead (?=\\p{Alpha}|\\p{Digit}):

"(?=\\p{Alpha}| \\p{Digit})(?<let>\\p{Alpha})?( (?<num>\\p{Digit}))?"

一般来说,为了避免空字符串,您可以使用 (?=.)

关于java - 正则表达式至少具有两个选项之一,但按顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44682198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com