gpt4 book ai didi

java - 连接多个命令

转载 作者:行者123 更新时间:2023-12-01 12:30:10 25 4
gpt4 key购买 nike

如何操作这个正则表达式

String oneCmd = "([0-9]+\\.[tcm]{1}\\#.+\\#[wsn]{1})";  

避免匹配

"100.m#testValue#w100.m#testValue#w"

但允许匹配

100.m#testValue#w

?因为最后我希望可以有多个命令,用 |

分隔
String regex = "^(" + oneCmd + "$|" + oneCmd + "\\|{1}" + oneCmd + "$)";

因此有效的命令是:

cmd
cmd|cmd1|cmd2|... not ending with an '|' !!

但第一个问题是,如果我只是连接 2 个或更多命令,它仍然有效。

最佳答案

我认为最易读的方法是首先在 | 上进行拆分,然后应用仅允许一个匹配的正则表达式:

^[0-9]+\\.[tcm]#[^#]*#[wsn]$

如果您想查找由 | 和/或字符串的开头/结尾分隔的匹配项,可以使用 positive lookahead assertions 来实现而不是 ^$ anchor :

(?<=^|\\|)[0-9]+\\.[tcm]#[^#]*#[wsn](?=$|\\|)

关于java - 连接多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25987623/

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