没有单词匹配的正则表达式
本文关键字:正则表达式 没有单 | 更新日期: 2023-09-27 18:33:41
>我有这个表达式:
-a bp cd 4 -6 3 -n sig3 -p 0.5 0.7
我想匹配从-a
到-n
的所有.这意味着前缀和后缀是:-
一个字母。
我有一个开始:(?<=-a )(?<ida>[^-]*)
但我还需要排除这封信。
请注意,-n 可以是任何其他字母,在它之前带有 - 并且仅在运行时知道。
我应该怎么做?
感谢所有的答案,我终于破解了它:
(?<=-a )(?.*?(?=-[a-z]|$))
如果我理解正确,你的模式是:
- "-a"后跟
- 任何不是短划线
[^-]
或短划线后跟非字母字符-[^a-z]
重复一次或多次,后跟 - 破折号和字母
-[a-z]
这个正则表达式应该这样做:
(?<=-a)([^-]|-[^a-z])+(?=-[a-z])
你可以
这样做:
(?<=-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