Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中包含特殊字符的正则表达式字符串问题_Python_Regex_String - Fatal编程技术网

python中包含特殊字符的正则表达式字符串问题

python中包含特殊字符的正则表达式字符串问题,python,regex,string,Python,Regex,String,我有一个字符串:“s=string.charAt(0)='d'” 我想检索('0','d')的元组 我使用了:re.search(r“\(.?)\)==”(.?)”&&“,“string.charAt(0)='d'” 当打印为“\\((.?)\\)==”(.?)”&&“”时,我检查了s变量 如何修复它?使用 \((.*?)\)\s*==\s*'(.*?)' 看。第一个变量在组1内捕获,第二个变量在组2内捕获 Python代码: import re string = "s = stri

我有一个字符串:“
s=string.charAt(0)='d'

我想检索
('0','d')
的元组
我使用了:
re.search(r“\(.?)\)==”(.?)”&&“,“string.charAt(0)='d'”

当打印为
“\\((.?)\\)==”(.?)”&&“
”时,我检查了s变量
如何修复它?

使用

\((.*?)\)\s*==\s*'(.*?)'
看。第一个变量在组1内捕获,第二个变量在组2内捕获

Python代码:

import re
string = "s = string.charAt (0) == 'd'"
match_data = re.search(r"\((.*?)\)\s*==\s*'(.*?)'", string)
if match_data:
    print(f"Var#1 = {match_data.group(1)}\nVar#2 = {match_data.group(2)}")
输出:

Var#1 = 0
Var#2 = d
使用

看。第一个变量在组1内捕获,第二个变量在组2内捕获

Python代码:

import re
string = "s = string.charAt (0) == 'd'"
match_data = re.search(r"\((.*?)\)\s*==\s*'(.*?)'", string)
if match_data:
    print(f"Var#1 = {match_data.group(1)}\nVar#2 = {match_data.group(2)}")
输出:

Var#1 = 0
Var#2 = d

正则表达式应该是
“*\(.?)\).*”(.?)\”
。这将得到括号内的字符,然后是单引号内的字符

>>> import re
>>> s = " s = string.charAt (0) == 'd'"
>>> m = re.search(r".*\((.?)\) .* '(.?)'", s)
>>> m.groups()
('0', 'd')

正则表达式应该是
“*\(.?)\).*”(.?)\”
。这将得到括号内的字符,然后是单引号内的字符

>>> import re
>>> s = " s = string.charAt (0) == 'd'"
>>> m = re.search(r".*\((.?)\) .* '(.?)'", s)
>>> m.groups()
('0', 'd')
你可以尝试:

\((\d+)\).*?'(\w+)'
对上述正则表达式的解释:

  • \(
    -按字面意思匹配
  • (\d+)
    -表示第一个捕获组一次或多次匹配数字
  • \)
    -按字面意思匹配
  • *?
    -懒洋洋地匹配除新行之外的所有内容
  • '(\w+)
    -表示第二个捕获组与任何单词字符(
    [0-9a-zA-Z]
    )匹配一次或多次

您可以在

中找到上述实现的示例运行,您可以尝试:

\((\d+)\).*?'(\w+)'
对上述正则表达式的解释:

  • \(
    -按字面意思匹配
  • (\d+)
    -表示第一个捕获组一次或多次匹配数字
  • \)
    -按字面意思匹配
  • *?
    -懒洋洋地匹配除新行之外的所有内容
  • '(\w+)
    -表示第二个捕获组与任何单词字符(
    [0-9a-zA-Z]
    )匹配一次或多次


您可以在

中找到上述实现的示例运行,感谢大家提供了非常有用的答案。我的问题已经解决了^ ^

谢谢大家提供了非常有用的答案。我的问题已解决^^

如果字符串是
“s=string.charAt(12)!='abc'+'def'
,您希望返回什么?您需要说明标识要提取的字符的规则。如果字符串是
“s=string.charAt(12)!='abc'+'def'
,您希望返回什么?您需要说明识别要提取的字符的规则。我们很高兴有一些解决方案对您有效。请考虑通过点击<代码>接受对您最有效的答案。✓在左边(请参阅),并向上投票任何对您有帮助的答案(请参阅)。我们很高兴一些解决方案对您有效。请考虑通过点击<代码>接受对您最有效的答案。✓位于左侧(请参阅),并向上投票任何对您有帮助的答案(请参阅)。