那里!好吧,通常我会用英语示例询问有关字符串的问题,但是在最后一次,我发现由于语法上的差异(例如...使用split()时),可能会出现一些问题。因此,我将用韩国示例来问这个问题。
所以我想知道的就是这样。我想知道字符串是否具有,int+'?' like, 3? 5? 6? 9? 11? 20? (which means the date btw, so int should be 1~31)
但是我不知道如何检查单词。 int+'?' .
正如您已经注意到的,int应该放在单词之前'?'
ex_A = '??? 3? 3? ???.'
ex_B = '??? 4?? ?????.'
ex_C = '??? 3??? ???? ?? ???.'
Run Code Online (Sandbox Code Playgroud)
ex_A should return True一会儿ex_B,ex_C就会return False。ex_B doesn't have '?'在其中以及ex_C has both int and '?'其中,但是那个int并不放在单词'?'之前。
所以...这一定是一个基本问题,有没有办法解决?我正在考虑在“?”之前制作一个角色。进入int,看看是否有错误。
但我认为您会有更多很棒的主意:)谢谢!
最好的方法可能是使用正则表达式:
import re
ex_A = '??? 3? 3? ???.'
ex_B = '??? 4?? ?????.'
ex_C = '??? 3??? ???? ?? ???.'
pattern = "\d{1,2}?"
sA = re.findall(pattern, ex_A)
sB = re.findall(pattern, ex_B)
sC = re.findall(pattern, ex_C)
print(sA)
print(sB)
print(sC)
Run Code Online (Sandbox Code Playgroud)
输出:
['3?']
[]
[]
Run Code Online (Sandbox Code Playgroud)
pattern 是用于搜索的正则表达式:
\d 表示0到9之间的任何数字。{1,2} 表示一两次发生? 是什么意思?因此,使用\d{1,2}?搜索模式搜索由一或两位数字后接?的序列。
*更新:
由于您只需要1到31之间的数字,因此可以使用模式 "([0-9]|[12][0-9]|3[01])?"
但是,数据的输出是
['3']
[]
[]
Run Code Online (Sandbox Code Playgroud)
所以,没有?我无法解释为什么。
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |