Sql 记事本++;替换除整数以外的整个字符串
我在Notpad++中有一个字符串 强制转换(1为数字(18,0)) 我想删除其中除1之外的所有字符串 1将是这里的任意整数 我需要一个正则表达式来代替它 每一种帮助都将受到感激 谢谢诸如此类的事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]+)捕获(
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字符串