我是新來的Python
我想在Python中提取特定模式3.5
模式:數字字符位數
字符可以是* + -/X X
如何提取特定的模式在Python
我該怎麼做?
我試圖使用pattern [0-9 \ */+ - xX \ 0-9],但它返回字符串中存在的任何字符。
例如:2 * 3或2×3或2 + 3或2-3亦宜
但asdXyz不應
我是新來的Python
我想在Python中提取特定模式3.5
模式:數字字符位數
字符可以是* + -/X X
如何提取特定的模式在Python
我該怎麼做?
我試圖使用pattern [0-9 \ */+ - xX \ 0-9],但它返回字符串中存在的任何字符。
例如:2 * 3或2×3或2 + 3或2-3亦宜
但asdXyz不應
您可以使用
[0-9][*+/xX-][0-9]
或整個字符串匹配:
^[0-9][*+/xX-][0-9]$
在Python 3.x中,你可以丟棄,如果^
(字符串錨開始)和$
(字符串錨結束)您使用re.fullmatch
(demo)模式:
if re.fullmatch(r'[0-9][*+/xX-][0-9]', '5+5'):
print('5+5 string found!')
if re.fullmatch(r'[0-9][*+/xX-][0-9]', '5+56'):
print('5+56 string found!')
# => 5+5 string found!
regex = r「[0-9] [* +/xX - ] [0-9]」這工作。讓我做一些測試。非常感謝:) –
好吧,我明白了,我刪除了不必要的答案部分。順便說一句,你的模式只是匹配來自定義的集合/範圍的單個字符。根據您使用的方法,可能會有不同的匹配方案,但問題是您將所有內容都放入單個字符類中。 –
的re.match()功能將限制搜索的開始和結束的字符串,以防止誤報。
\d
匹配。[x/+\-]
相匹配的x
正好一個,/
,+
,或-
(其被轉義,因爲它是一個正則表達式的特殊字符)的匹配。\d
匹配。例如:
>>> re.match(r'(\d)([x/+\-])(\d)', '3/4').groups()
('3', '/', '4')
請提供一些有效的範例。 –
我覺得你可以做'[0-9] [\ * + -/xX] [0-9]'。 – ForceBru