Sql 记事本++;替换除整数以外的整个字符串

Sql 记事本++;替换除整数以外的整个字符串,sql,sql-server,regex,Sql,Sql Server,Regex,我在Notpad++中有一个字符串 强制转换(1为数字(18,0)) 我想删除其中除1之外的所有字符串 1将是这里的任意整数 我需要一个正则表达式来代替它 每一种帮助都将受到感激 谢谢诸如此类的事 CAST\(([0-9]+).+$ 并替换为 \1 只留下捕获组的内容,(..)是一个捕获组,它将其中的内容放入{n},其中{n}是捕获组的编号。在这种情况下,我们只有1个,因此替换为\1。我们的捕获组是0到9连续任意次数(如下所述) CAST\(匹配CAST(字面意思 ([0-9]+)捕获(

我在Notpad++中有一个字符串

强制转换(1为数字(18,0))

我想删除其中除1之外的所有字符串

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+\)\),
除说明中的最后一行外,与上述内容相同:

  • +$
    行尾的任何一个或多个
    $
是这样吗

  • 作为数字\(
    作为数字(
    字面意思
  • \d+
    任意整数
  • 逗号的字面意思
  • \s*
    空白
    *
    一个或多个
  • \d+
    再次
  • \)\),
    ),
    字面意思
您必须退出
它知道它们不是捕获组

这种情况下的结果将是

1 some other text
在第一个示例中,它还将删除一些其他文本,我不知道是否存在额外的文本,因此我将这两个文本都放在这里只是为了完整性

当您第一次开始使用正则表达式时,它们可能会非常混乱,但它们非常强大。花时间至少学习一些基础知识是值得的,因为你可以用它们做很多事情

记事本++替换对话框应如下所示:

然后按“全部替换”

感谢@Caius Jard的截图


希望有帮助

“我需要一个正则表达式来代替它。”你做了一些研究并试图自己解决这个问题了吗?这个问题与
PHP
MySQL
有什么关系?StackOverflow需要某种类型的语言。我正在使用PHP,因此,我写了这个。SQL Server没有内置的正则表达式支持,因此您不能使用正则表达式来执行此操作。替换的整数可以是任何类型的整数。我怎么写呢?上次我检查一个整数必须是0-9一个或多个。例如
1
是整数,
890078484993
也是整数。因此,
[0-9]+
\d+
都将匹配它们。为了解释,
[…]
是一组字符,在本例中,0到9,
+
是一个或多个字符。另外,
\d
是数字或缩写,表示
0-9
(…)
是一个捕获组,它将其中的内容放入
\{n}
中,其中
{n}
是捕获组编号。在这种情况下,我们只有1个,因此更换时需要
\1
。感谢您的回复。。。!1可以是123或2015,4666546。如何在替换时免除这些整数值1可以是123或2015或4666546或874984939348983498349834894398934894398348943899843898394984389984或任意长的0到9字符串