我有这样一段文字:
Hans Wurst, geboren 25.01.1987, zuletzt tätig als Metzger, Breslauer Str. 15, 02708 Löbau
我想从中获取街道名称(“Breslauer Str. 15”)。所以我使用了如下所示的正则表达式:
(?<=, )(.+?)(?=,[\s]?[0-9]{5})
但是这是贪心的,并且匹配:
geboren 25.01.1987, zuletzt tätig als Metzger, Breslauer Str. 15
我怎样才能使它不那么贪婪,以便在考虑先行断言 (?=,[\s]?[0-9]{5}) 的情况下,基本上它采用逗号的最新出现?
最佳答案
只需在正则表达式模式的开头添加 [^,].*
即可。模式 [^,].*
表示“非逗号”后跟任何字符任意次数。
RegEx Demo
Python 演示:
import re
s = 'Hans Wurst, geboren 25.01.1987, zuletzt tätig als Metzger, Breslauer Str. 15, 02708 Löbau'
m = re.search(r'[^,].*(?<=, )(.+)(?=,[\s]?[0-9]{5})', s)
if m:
print(m.group(1))
输出:
Breslauer Str. 15
https://stackoverflow.com/questions/69890357/
相关文章:
ios - 是否有修改器可以更改 SwiftUI Picker 的标签颜色?
c++ - 从 std `vector` 库创建的 `
angular - TS2322 : Type 'HTMLDivElement' is not as
java - 如何将具有相同键但不同值的多个 map 合并为一个 map
powershell - 设置 PSReadLineOption : A parameter can
python - 如何检查字符串中的特定元素在python中是否相等?
tailwind-css - 如何使用 Tailwind CSS 定位具有特定数据属性的元素?