我正在尝试从地址字符串中仅选择街道/单元号。
我的正则表达式是import pandas as pd
index = pd.MultiIndex.from_tuples([('one', '1993-02-02'), ('one', '1994-02-03'), ('two', '1995-02-18'), ('two', '1996-03-01')])
s = pd.DataFrame(np.arange(1.0, 5.0), index=index)
s.rename(columns = {0 : 'test1'}, inplace = True)
s.index.set_names(['name','date'], in place=True)
index = pd.MultiIndex.from_tuples([('one', '19930630'), ('one', '19940630'), ('two', '19950630'), ('two', '19960630')])
d = pd.DataFrame(np.arange(1.0, 5.0), index=index)
d.rename(columns = {0 : 'test2'}, inplace = True)
d.index.set_names(['name','date'], in place=True)
目前,我的正则表达式在任何字母字符之前匹配/^[\d\s,\-\/]*/
digits
'/'
和'-'
。但是我想排除拖尾space characters
。
我的正则表达式匹配
space character
新南威尔士州曼利路悉尼路(请注意' 2'之后的空格字符)
而不是
61/2
悉尼路,曼利新南威尔士州
以下是一些示例地址字符串:
61/2
61/2 Sydney Road, Manly NSW
61-2 Sydney Road, Manly NSW
答案 0 :(得分:3)
由于您的预期匹配不是空字符串(并且您的当前表达式 - /^[\d\s,\-\/]*/
- 如果字符串的开头没有[\d\s,\-\/]*
模式匹配,则匹配空字符串)并且总是有一个数字在比赛结束时,您可以在模式的末尾添加\d
:
/^[\d\s,\/-]*\d/
^^
请参阅regex demo。
模式详情
^
- 字符串锚的开始[\d\s,\/-]*
- 零个或多个数字,空格,,
,/
或-
(请注意,当它位于非常位置时无需转义连字符字符类的结尾)\d
- 数字。