[英]regular expression without word match
我有这个表达:
-a bp cd 4 -6 3 -n sig3 -p 0.5 0.7
我想将所有-a
匹配到-n
。 这意味着前缀和后缀为: -
带有一个字母。
我开始于: (?<=-a )(?<ida>[^-]*)
但我还需要排除这封信。
请注意,-n可以是-之前的任何其他字母,并且仅在运行时知道。
我应该怎么做?
感谢所有的答案,我终于破解了:
(?<=-a)(?。*?(?=-[[az] | $)))
您可以这样做:
(?<=-a )(?>[^ ]+| (?!-n))*(?= -n)
此表达式的目的是避免延迟量词,并在开头和结尾处修剪空格。
细节:
(?<=-a ) # preceded by `-a `
(?> # open an atomic group (non-capturing)
[^ ]+ # all that is not a space
| # or
[ ](?!-n) # a space not followed by `-n`
)* # repeat the group zero or more times
(?= -n) # check if ` -n` follows
如果我对您的理解正确,则您的模式是:
[^-]
或破折号后跟不是字母的字符-[^az]
重复一次或多次,然后再跟 -[az]
这个正则表达式应该做到这一点:
(?<=-a)([^-]|-[^a-z])+(?=-[a-z])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.