我有两个例子
abc 34 def12 ghi
abc 34 33 ghi
和正则表达式
^.*?([0-9]{2}) ?([a-z]{2,3})? ?([0-9]{2}).*$
(见https://regex101.com/r/U2JNaS/1)
我需要修改它以提取$1
,$2
,$3
但仅在 $2
存在时,即我需要它返回
34 def12
<WRONG>
如何实现?
答案 0 :(得分:0)
请注意,您在第二个捕获组(?
)之后放置了([a-z]{2,3})
。
即使特定行不包含“字母”部分,也会导致整个正则表达式匹配。
只需删除此?
,以便在这种情况下整个正则表达式都不匹配。