我需要帮助来生成正则表达式,以便它匹配任何具有以下详细信息的字符串:
我试过这个.\([0-9]+\)$
,但这不是我要求的。
例如:
以下字符串应匹配:
asds-xyz (1)
asds+-xyz (12)
as@ds-xyz (123)
不应匹配以下字符串:
asds-xyz ((1)
asds-xyz ((12sdf))
(123) asds-xyz
xyz ((2)
XYX (1))
XYZ (1)(2)
xyz(1)BXZ
xyz(1)BXZ(2)
答案 0 :(得分:2)
^[^\(\)]*\(\d+\)$
将完成这项工作......
\d = [0-9]
答案 1 :(得分:1)
我尝试修改您的模式的最小更改: 您必须使用[^键在您唯一需要的括号之前排除括号。像这样
[^\(\)]*\([0-9]+\)$
那会找到你喜欢的模式,如果你喜欢整个字符串,那么只需在开头添加^
答案 2 :(得分:0)
从你的正则表达式开始:.\([0-9]+\)$
。匹配一切,但你需要量词。所以添加*
.*\([0-9]+\)$
但问题是,它会在最后一个括号之前匹配(和),如xyz ((2)
因此,为此做出负面设定,最终结果是:
^(.*[^\(\)])(\([0-9]+\))$