我的代码拍摄照片并将其转换为字符串,然后需要检查照片中是否有数字。
例如,从我转换为字符串的照片中,我想检查照片>>字符串中是否有数字“5545621548956254”。 我想使用正则表达式(或建议任何更好的想法)并检查前4个数字:“5545”是否在整个数字的代码打印中。但是我在做这件事时遇到了问题。
以下是代码。
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
converters.add(0, new MappingJackson2HttpMessageConverter());
}
}
答案 0 :(得分:0)
你应该使用类似的东西:
if re.match(r'^5545', hand):
print(hand)
^表示该行的开头。
答案 1 :(得分:0)
您可以在regex中使用if else,但由于python中的默认重新模块不支持此功能,因此您必须安装regex module:
pip install regex
然后
import regex
text="""5545621548956254
554511111111111111
55234566
55451111111111111111111
43333"""
pattern=r'(?(?=^5545)\d+|\s)'
print(list(filter(lambda x:x!='\n',regex.findall(pattern,text,regex.MULTILINE))))
输出:
['5545621548956254', '554511111111111111', '55451111111111111111111']
正则表达式信息:
If Clause (?(?=(^5545))\w+|\s)
Evaluate the condition below and proceed accordingly
Positive Lookahead (?=(^5545))
Assert that the Regex below matches
1st Capturing Group (^5545)
^ asserts position at start of a line
5545 matches the characters 5545 literally (case sensitive)
If condition is met, match the following regex \w+
\w+ matches any word character (equal to [a-zA-Z0-9_])
+ Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
Else match the following regex \s
\s matches any whitespace character (equal to [\r\n\t\f\v ])