我在 Notpad ++ 中有一个字符串。
CAST(1 AS NUMERIC(18,0)),
我要删除其中除1外的所有字符串。
1将是任何整数。
我需要一个正则表达式来替换它。
每一种帮助将不胜感激。
谢谢
答案 0 :(得分:1)
类似这样的东西
CAST\(([0-9]+).+$
并替换为
\1
将仅保留捕获组的内容,(..)是一个捕获组,它将其中的内容放入{n}中,其中{n}是捕获组编号。在这种情况下,我们只有1个,因此替换为\ 1。而且我们的捕获组是连续0
至9
次(如下所述)
CAST\(
从字面上匹配CAST(
([0-9]+)
捕获(...)
0-9(+
一个或多个),您也可以(\d+)
.+$
行的$
末尾有一个或多个。如果此行上还有其他文字,例如
CAST(1 AS NUMERIC(18, 0)), Some other Text
您必须使用比.+$
更具体的内容,例如
CAST\((\d+) AS NUMERIC\(\d+,\s*\d+\)\),
除了说明的最后一行外,与上述相同:
.+$
行的$
末尾有一个或多个。会是这样
AS NUMERIC\(
或AS NUMERIC(
\d+
任何整数,
字面上的逗号\s*
空白*
无或更多。\d+
\)\),
或)),
从字面上看。您必须逃脱(
和)
,因为它们知道它们不是捕获组。
在这种情况下的结果将是
1 some other text
在第一个示例中,它也将删除some other text
,我不知道是否存在多余的文本,因此我仅出于完整性的考虑。
当您第一次开始使用正则表达式时,可能会感到非常困惑,但是它们非常强大。值得花时间至少学习基础知识,因为您可以使用它们做很多事情。
您的Notepad ++替换对话框应如下所示:
然后按全部替换
感谢@Caius Jard提供的屏幕截图。
希望有帮助!