[英]Python Finding All Open Parentheses in a String
我正在嘗試查找字符串中所有開放括號的位置。 遵循此答案 ,我可以找到字母的位置,但是找不到括號的位置。 例如, l = [3, 4]
,但是當我嘗試查找所有內容時(
error: unbalanced parenthesis
。
import re
s = "(Hello("
l = [m.start() for m in re.finditer('l', s)]
openp = [m.start() for m in re.finditer('(', s)]
在正則表達式中(
是表示組開始的特殊字符。要匹配文字(
您需要用反斜杠將其轉義或將其放入字符類中:
openp = [m.start() for m in re.finditer(r'\(', s)]
... 要么:
openp = [m.start() for m in re.finditer(r'[(]', s)]
作為更通用的解決方案,您可以使用re.escape()
自動轉義字符串,以便所有字符均按字面意義進行解釋。 例如:
substr_to_find = '('
substr_locs = [m.start() for m in re.finditer(re.escape(substr_to_find), s)]
正如DSM在評論中指出的那樣,在這種情況下,您也可以使用可讀性強的列表理解代替regex:
openp = [i for i, c in enumerate(s) if c == "("]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.