例如,如何匹配句子_ab
中的第二个_ab_ab is a test
?我尝试\>
来匹配词尾,但不适用于Python 2.7。注意:我匹配的不是字符串的结尾,而是单个单词的结尾。
其他帖子中有隐含的答案。但我认为应该提倡对这个问题作出简单而直接的回答。所以我在没有直接和&简明找到解决方案。
答案 0 :(得分:7)
您可以在最后使用字边界\b
。请注意,在\b
之前添加_ab
无法正常工作,因为在下划线之前存在b
( word char )。 \b
匹配单词字符和非单词字符(反之亦然)。
r'_ab\b'
答案 1 :(得分:4)
_ab(?!\w) #if you want `_` as word character
或
_ab(?![a-zA-Z0-9])
您只需使用lookahead
表示结束语。
import re
p = re.compile(r'_ab(?!\w)') #consider underscore also as a word character.
或
p = re.compile(r'_ab(?![a-zA-Z0-9])')
test_str = "_ab_ab"
re.findall(p, test_str)
答案 2 :(得分:2)
使用r'\>'
而非'\>'
。
我在阅读这篇文章后找到了这个解决方案:https://stackoverflow.com/a/3995242/2728388
在Python中使用re
模块时,请记住Python’s raw string notation,添加r
前缀以转义正则表达式中的反斜杠。
任何其他解决方案,例如使用字边界\b
?
答案 3 :(得分:-1)
我的问题是
正常情况: (p_esco_link-> t_sco> 0))
替换为 (p_esco_link-> _ sco_piconet_instantiate_anchor.t_sco> 0))
返回p_esco_link-> t_sco;
替换为 return p_esco_link-> _ sco_piconet_instantiate_anchor.t_sco;
异常情况: t_sco_info * p_sco_link;
替换为 _sco_piconet_instantiate_anchor.t_sco_info * p_sco_link; -----示例end ------
此替换api的特征是: 标签前没有空格,而标签下也没有空格。当使用_表示空格时,替换大小写为: xxxx [target] _
所以我我们遵循以下代码,但是它不起作用!
Calendar currentTime = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
currentTime.set(Calendar.ZONE_OFFSET, TimeZone.getTimeZone("UTC").getRawOffset());
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, currentTime.get(Calendar.HOUR_OF_DAY));
calendar.add(Calendar.HOUR, 4);
Log.d(TAG, "time: " + calendar.getTimeInMillis());