- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章通过Java正则表达式去掉SQL代码中回车换行和多余空格由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
复制代码 代码如下
public static void main(String[] args) { String sql = "SELECT * FROM \n" + " `testdb`.`foo` LIMIT 0, 100"; String s = "SELECT * FROM `testdb`.`foo` LIMIT 0, 100"; String sql2 = Pattern.compile(" {2,}").matcher(s).replaceAll(" "); String sql3 = s.replaceAll(" {2,}"," "); String sql4 = sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}"," ");; String sql5 = sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}?"," ");; String sql6 = sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}+"," ");; System.out.println(sql2); System.out.println(sql3); System.out.println(sql4); System.out.println(sql5); System.out.println(sql6); } 。
输出结果:
复制代码 代码如下
SELECT * FROM `testdb`.`foo` LIMIT 0, 100 SELECT * FROM `testdb`.`foo` LIMIT 0, 100 SELECT * FROM `testdb`.`foo` LIMIT 0, 100 SELECT * FROM `testdb`.`foo` LIMIT 0, 100 SELECT * FROM `testdb`.`foo` LIMIT 0, 100 [code] Process finished with exit code 0 结果可以看出,有一个是没有去掉多余空格的。 可见java中的正则式,同样含义的还有多重写法,呵呵!其实主要是不同数量词匹配模式在作怪: 原版API文档中写道: Greedy 数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过 m 次 Reluctant 数量词 X?? X,一次或一次也没有 X*? X,零次或多次 X+? X,一次或多次 X{n}? X,恰好 n 次 X{n,}? X,至少 n 次 X{n,m}? X,至少 n 次,但是不超过 m 次 Possessive 数量词 X?+ X,一次或一次也没有 X*+ X,零次或多次 X++ X,一次或多次 X{n}+ X,恰好 n 次 X{n,}+ X,至少 n 次 X{n,m}+ X,至少 n 次,但是不超过 m 次 但是,没有对三种方式进行更详细的说明,其实三种模式的区别如下: Greedy :尝试找到最长的匹配。 Reluctant :尝试找到最短的匹配。 Possessive :也尝试找到最长的匹配。 尽管greedy和possessive迫使一个matcher在进行第一次匹配之前读取整个的text,greedy常常导致为了找到一个match进行多次尝试,然而possessive让一个matcher仅尝试一个match一次。 下面是一个我工具中的方法: [code] /** * 判断一条SQL语句是否已经是分页的SQL * * @param sql 源SQL * @return 是已经分页的SQL时返回ture,否则返回False; */ public boolean isAlreadySegmentSQL(String sql) { return sql.replace('\r', ' ').replace('\n', ' ').replaceAll(" {2,}", " ").matches("(?i).+LIMIT [\\d+ *|\\d *, *\\d+].+"); } 。
还是正则功能强悍啊! 补充: 下面这个两个注视的正则式,和第三个语意一样的:
复制代码 代码如下
// regList.put("(?i)bit\\([2-9]\\)\\z", "byte[]"); // regList.put("(?i)bit\\(\\d{2,}\\)\\z", "byte[]"); regList.put("(?i)bit\\((\\d{2,}|[2-9])\\)\\z", "byte[]"),
本文出自 “熔 岩” 博客 。
最后此篇关于通过Java正则表达式去掉SQL代码中回车换行和多余空格的文章就讲到这里了,如果你想了解更多关于通过Java正则表达式去掉SQL代码中回车换行和多余空格的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
这里是新的,通常在 VBA 中。我创建了一个宏,它可以复制 excel 中单元格的内容并粘贴到 word 文档中的特定位置。仅供引用,我使用 word 中的书签来选择粘贴的确切位置。问题是复制的所有内
我正在阅读有关字符串文字的 MySql 文档,并尝试使用回车符进行以下操作: 选择“我想要一个\r bannana”; 为什么会返回: +--------------------+ bannana
我正在运行以下代码: #include #include #include int main(){ FILE *fp; if((fp=fopen("test.txt","r"))==N
我一直想知道为什么在运行每个应用程序时命令提示符和Powershell都预先装载了这么多回车符。您可以永远滚动(好吧,不是真的,而是几十个,如果不是数百个页面长度的空白空间)。我现在没有Unix机器,
回车、换行、换行有什么区别?它取决于操作系统吗?为什么我们需要使用所有这些来到达下一行? 最佳答案 通常,“新行”是指通常被解释为表示新行的任何字符集,其中可以包括: CR LF(在 DOS/Wind
#include #include #include struct st{ char n[100]; //Name char
我对 php/mysql 比较陌生。我正在尝试对这部分进行回车: echo "" . nl2br($row['dish_description']) . ""; “dish_description”包
我正在阅读一个普通的文本文件,并将所有单词作为数字写入另一个文本。当一行结束时,它会查找“换行符 (\n)”并从新行继续。在 Ubuntu 中它可以完美执行,但在 Windows (DevC++) 中
Python Docx 是一个非常好的库,用于为不直接处理所有 COM 内容的内容生成 Microsoft Word 文档。尽管如此,我还是遇到了一些限制。 有谁知道如何在一串文本中加入回车符? 我希
我正在使用 CLion IDE,我正在尝试执行回车。 我正在用 C 语言执行打印语句,语法如下: printf("\rHello World!"); 这是一个循环。循环仍然在自己的行上打印每个 Hel
我正在尝试使用正则表达式来匹配字符串和 \r 之间的每个字符特点 : text = 'Some text\rText to find !\r other text\r' 我要配'Text to fin
使用 knockout.js,如何在绑定(bind)到段落文本属性的文本中包含回车 元素。 在我的 ViewModel 中,我生成了一个绑定(bind)到 的文本字符串。在 View 中。我想在浏览
# make test cc test.c -o test # ./test I am a happy yam until i hit return... # ./test because
我正在使用 Moodle 2.2.1,但有一个基本的 php-mysql 问题。我试图返回 WHERE 子句中带有条件的字段的计数。 WHERE 子句条件来自 foreach 循环。这是我的代码:
我在@Html.TextBoxFor 中显示一些长文本。文本包含换行符、回车符等,但@Html.TextBoxFor 似乎不尊重这些。有什么我可能遗漏的想法吗? 最佳答案 文本框每个定义单行。 您必须
隔离问题一小时后,我可以发布这个:) 我的本地文件有问题,但在生产环境中没有。唯一的区别是在生产环境中,html 文件是内联的。 我正在使用默认的 bootstrap 3.3.5 和这个 css
在过滤选项后面加上: \t[|] \ r[|] 也就是C语言中的回车和空格 附上C语的其他转义字符以便急之需: \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(F
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界. 这篇CFSDN的博客文章java去除字符串中的空格、回车、换行符、制表符的小例子由作者收集整理,
我正在尝试编写一份将在 Excel 中发送的报告,该报告将两条记录连接到同一单元格中,并在每条记录之间显示回车符。我一直在尝试 ||chr(10) || chr(13) ||但这仅在我作为脚本运行时有
我的 fopen 是这样设置的。我尝试过使用“t”和不使用“t”的 fopen。由于某种原因,我的 fprintf 打印出 ^M ,它们是回车符。如何阻止 frpintf 这样做?我想只使用普通的换行
我是一名优秀的程序员,十分优秀!